我在 uwp 应用程序中使用WinrtXamlToolkit中的TreeView控件。我想根据条件对某些 TreeViewItems 应用不同的样式,因此我创建了一个派生自 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 覆盖。有人知道为什么吗?