根据列表视图项禁用/启用上下文菜单项

时间:2015-06-12 08:07:56

标签: c# .net wpf xaml contextmenu

我有一个UserControl,其中包含ListView。 另外,我有一个 listViewItems.cs 类,其DisplayMemberBinding为GridView中的listView

每个ListView-Item都有一个上下文菜单。 现在我尝试启用/禁用context-menu-items,具体取决于ListViewItems类中的值是null

我已尝试将IsEnabled属性绑定到类 ListViewItems.cs 中的布尔值ShowResItemEn,但它不起作用。

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>

类ListViewItems.cs

public Boolean ShowResItemEn
{
   get
   {
       return (auftrNr[0] == null) ? false : true; 
   }
}

1 个答案:

答案 0 :(得分:0)

好的,现在有效。我已经设置了AncestorType错误

IsEnabled="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}},Path=SelectedItem.ShowBesItemEn}"