我有一个带有UserControlListView
另外,我还有一个类listViewItems.cs,其中DisplayMemberBinding绑定到GridView中的listView

每个ListView-Item都有一个上下文菜单。
现在,我尝试启用/禁用上下文菜单项,具体取决于类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;
   }
}

最佳答案

好的,现在可以使用。我将AncestorType设置为错误

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

10-06 00:36