概要
一般的に、private setter を持つプロパティを TwoWay Binding すると、InvalidOperationException が発生して死ぬ。
しかし、ターゲットフレームワークが 4.5 の時のみ、何事もなかったかのように動作する。なにそれ……
※ OneWayToSource の場合も同様。
一般的に、private setter を持つプロパティを TwoWay Binding すると、InvalidOperationException が発生して死ぬ。
しかし、ターゲットフレームワークが 4.5 の時のみ、何事もなかったかのように動作する。なにそれ……
※ OneWayToSource の場合も同様。
条件をよく忘れるのでメモ。
ItemsPanel
が VirtualizingPanel
であること
VirtualizingStackPanel
VirtualizingPanel.IsVirtualizing
が True
(既定値) であることScrollViewer.CanContentScroll
が True
であること
False
VirtualizingPanel.IsVirtualizingWhenGrouping
も True
にListView
なんかは初めから仮想化有効だけど、Template 弄る時なんかに無効化されてしまったりするので注意
VirtualizingPanel.VirtualizationMode
は Recycling
に
VirtualizingPanel.ScrollUnit
は Pixel
に
Item
はスクロールしてる感乏しいグループ化したい時はControlTemplate
にItemsPresenter
を使わないとダメっぽい
また、ItemsPanel を指定せず、前述の ControlTemplate でコレクション項目の並べ方を指定する方法もあります。ControlTemplate 内に ItemsPresenter を配置する代わりに、Panel の派生クラスを指定し、IsItemsHost プロパティに True を設定します。
のだけども、グループ化して表示したい場合うまく表示されない。
※実際やりたかったこととは違うけど例なので……