0
我在我的WPF应用程序中有一个TreeView,我想显示或隐藏上下文菜单,具体取决于treeviewItem的类型。 TreeView是数据绑定并使用HierarchicalDataTemplate填充。我可以禁用rightmouse事件代码中的上下文菜单项。 但我希望在XAML中完成此操作。我试过的是;使用DataTrigger来隐藏/显示WPF TreeView ContectMenu
<Grid.Resources>
<ContextMenu x:Key="MyContextMenu">
<MenuItem Name="Menu1" Header="Add " Click="AddNew_Click" ></MenuItem>
<MenuItem Name="Menu2" Header="" Click="Menu2_Click"></MenuItem>
</ContextMenu>
</Grid.Resources>
在一侧的树形目录我有此代码
<HierarchicalDataTemplate.Triggers>
<DataTrigger Binding="{Binding Document.DocumentType}" Value="P">
<Setter TargetName="icon" Property="Source" Value="../Images/P.png"/>
*<Setter Property="ContextMenu" Value="{StaticResource MyContextMenu}"/>*
</DataTrigger>
</HierarchicalDataTemplate.Triggers>
但是这给运行时错误“对象引用不设置到对象的实例”。当DocumentType为'P'时,您可以看到图像设置为数据触发器,并且只有当DocumentType为'P'时隐藏/禁用上下文菜单,否则隐藏/禁用。 可以这样做吗?
你的问题不清楚。触发器不工作?或崩溃来了是问题?什么值为空? –
触发器正在工作,图标图像被应用。但是当我尝试右键单击treeviewitem以获取上下文菜单时,它会给出该异常。 – voddy