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