12月 022015
 

概要

一般的に、private setter を持つプロパティを TwoWay Binding すると、InvalidOperationException が発生して死ぬ。
しかし、ターゲットフレームワークが 4.5 の時のみ、何事もなかったかのように動作する。なにそれ……

※ OneWayToSource の場合も同様。

Continue reading »

9月 032015
 

条件をよく忘れるのでメモ。

条件

  • ItemsPanelVirtualizingPanel であること
    • だいたい VirtualizingStackPanel
  • VirtualizingPanel.IsVirtualizingTrue (既定値) であること
  • ScrollViewer.CanContentScrollTrue であること
    • 既定値は False
  • グループ化してる場合は VirtualizingPanel.IsVirtualizingWhenGroupingTrue

ListView なんかは初めから仮想化有効だけど、Template 弄る時なんかに無効化されてしまったりするので注意

既定値が気に食わないやつとか

  • VirtualizingPanel.VirtualizationModeRecycling
    • 使いまわしたほうがパフォーマンス良い
  • VirtualizingPanel.ScrollUnitPixel
    • 既定値の Item はスクロールしてる感乏しい
    • タッチだとカクカクしてなおさらキモい

サンプル

[xml]




















[/xml]
5月 142015
 

結論

グループ化したい時はControlTemplateItemsPresenterを使わないとダメっぽい

やりたかったこととか

また、ItemsPanel を指定せず、前述の ControlTemplate でコレクション項目の並べ方を指定する方法もあります。ControlTemplate 内に ItemsPresenter を配置する代わりに、Panel の派生クラスを指定し、IsItemsHost プロパティに True を設定します。

のだけども、グループ化して表示したい場合うまく表示されない。

  • こうしたかった
  • が、こうなる

※実際やりたかったこととは違うけど例なので……

Continue reading »