我有一个TreeView
,其中包含一个HierarchicalDataTemplate
,用于显示其项目。
HierarchicalDataTemplate
充满了一个堆栈面板,其中包含一个Image
和一个TextBlock
。
我将树形视图用作分层导航菜单。
分层数据模板的ItemsSource
已绑定到ObservableCollection
。该集合包含我自己的类 NavMenuItem 的实例。
NavMenuItem 不扩展UserControl
或其他内容。这是一个纯C#类。
该类具有以下属性:
TextBlock
的文本的字符串。在HierarchicalDataTemplate
中,我只将TextBlock
文本绑定到 NavMenuItem 的Title属性。这可以正常工作。
我还在App.xaml中创建了一种通用样式,该样式通常为任何TreeView
定义了样式和模板。
现在,我想以某种方式将 NavMenuItem 的IsActive属性与树视图中控件TreeViewItem
的IsExpanded属性耦合。这样,我可以从后面的代码中更改菜单项的展开状态。
如何完成?
在ItemContainerStyle
中使用TreeView
来操纵TreeViewItem
时,它仍然是带有{em> TargetType {{1 }}。框架不会知道属于它的视图模型(NavMenuItem)。因此,样式触发器只能直接使用Style
框架控件中的属性。