uwp アプリでWinrtXamlToolkitのTreeViewコントロールを使用しています。条件に応じていくつかの TreeViewItem に異なるスタイルを適用したいので、StyleSelector から派生するクラス TreeViewItemStyleSelector を作成し、SelectStyleCore 関数をオーバーライドします。
public Style ResourceStyle { get; set; }
public Style ClassroomStyle { get; set; }
protected override Style SelectStyleCore(object item, DependencyObject container)
{
// control never reaches here.
// logic to apply style
}
次に、xaml でこのように使用します。
ページ内リソース
<StyleSelectors:TreeViewItemStyleSelector ResourceStyle="{StaticResource AStyle}" ClassroomStyle = "{StaticResource BStyle}"/>
そして、ページの後半。
<wxtControls:TreeView ItemsSource="{Binding StructureViewModels}" ItemContainterStyleSelector="{StaticResource TreeViewItemStyleSelector}" />
問題は、SelectStyleCore オーバーライドが呼び出されないことです。理由を知っている人はいますか?