Disable/Enable 上下文菜单项取决于列表视图项
Disable/Enable context menu item depending on listview item
我有一个 UserControl
,里面有一个 ListView
。
此外,我有一个 class listViewItems.cs 和 listView
.
中的 GridView
的 DisplayMemberBinding
每个 ListView-Item 都有一个上下文菜单。
现在,我正在尝试 enable/disable 上下文菜单项,具体取决于 class ListViewItems 中的值是否为 null
我试过将 IsEnabled
属性 绑定到 class ListViewItems.cs[= 中的布尔值 ShowResItemEn
32=] 但它不起作用。
DataOutput.xaml
<ListView.Resources>
<ContextMenu x:Name="cmListView" x:Key="ItemContextMenu" DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}">
<MenuItem x:Name="itmRes"
Header="Reservierungen anzeigen"
IsEnabled="{Binding PlacementTarget.SelectedItem.ShowResItemEn, RelativeSource={RelativeSource FindAncestor,AncestorType=ContextMenu}}"
Command="{Binding ShowResItemCmd}"
CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=ContextMenu}, Path=PlacementTarget.SelectedItem}" >
</MenuItem>
</ContextMenu>
</ListView.Resources>
class ListViewItems.cs
public Boolean ShowResItemEn
{
get
{
return (auftrNr[0] == null) ? false : true;
}
}
好的,现在可以了。我把 AncestorType 设置错了
IsEnabled="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}},Path=SelectedItem.ShowBesItemEn}"
我有一个 UserControl
,里面有一个 ListView
。
此外,我有一个 class listViewItems.cs 和 listView
.
GridView
的 DisplayMemberBinding
每个 ListView-Item 都有一个上下文菜单。
现在,我正在尝试 enable/disable 上下文菜单项,具体取决于 class ListViewItems 中的值是否为 null
我试过将 IsEnabled
属性 绑定到 class ListViewItems.cs[= 中的布尔值 ShowResItemEn
32=] 但它不起作用。
DataOutput.xaml
<ListView.Resources>
<ContextMenu x:Name="cmListView" x:Key="ItemContextMenu" DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}">
<MenuItem x:Name="itmRes"
Header="Reservierungen anzeigen"
IsEnabled="{Binding PlacementTarget.SelectedItem.ShowResItemEn, RelativeSource={RelativeSource FindAncestor,AncestorType=ContextMenu}}"
Command="{Binding ShowResItemCmd}"
CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=ContextMenu}, Path=PlacementTarget.SelectedItem}" >
</MenuItem>
</ContextMenu>
</ListView.Resources>
class ListViewItems.cs
public Boolean ShowResItemEn
{
get
{
return (auftrNr[0] == null) ? false : true;
}
}
好的,现在可以了。我把 AncestorType 设置错了
IsEnabled="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}},Path=SelectedItem.ShowBesItemEn}"