- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 ContextMenu 用于在 TreeView 中声明的 TreeView 项目:
<TreeView ItemsSource="{Binding countries, Mode=TwoWay}" SelectedItemChanged="TreeView_SelectedItemChanged">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type myapp:City}" ItemsSource="{Binding Cities}">
<StackPanel Orientation="Horizontal" ContextMenu="{StaticResource CityItem}">
<TextBlock Text="{Binding CityName}" FontSize="14" Foreground="Bisque"/>
...
上下文菜单本身声明为:
<ContextMenu x:Key ="CityItem" StaysOpen="true" Foreground="Bisque">
<MenuItem Header="Edit City" CommandParameter="{Binding Parent, RelativeSource={RelativeSource Self}}" Click="EditCityClick"/>
<MenuItem Header="DeleteCity" CommandParameter="{Binding Parent, RelativeSource={RelativeSource Self}}" Click="DeleteCityClick"/>
</ContextMenu>
好了,此时一切正常
private void DeleteCityClick(object sender, RoutedEventArgs e)
{
City city = ((FrameworkElement)e.OriginalSource).DataContext as City;
...
}
我可以访问城市对象,修改,删除,以及根据城市和城市属性的变化在 gui 中更新的任何内容(onpropertychanged 工作正常)。
问题是如何禁用 ContextMenuItem 绑定(bind) IsEnabled 到 City 对象属性?假设
public bool IsEnabled { get; set;}
我尝试了几种方法,但不知道如何从 ContextMenu MenuItem 访问源对象(城市)。
谢谢!
已编辑:很抱歉打字错误,但是:
public string IsEnabled { get; set;}
实际上是:
public bool IsEnabled { get; set;}
编辑 2:
有趣的“不是 wpf...”
最佳答案
试试这个:
<MenuItem ... IsEnabled="{Binding PlacementTarget.DataContext.IsEnabled, RelativeSource={RelativeSource AncestorType=ContextMenu}}" />
它绑定(bind)到父ContextMenu
的PlacementTarget
的DataContext
,它应该是一个City
对象.
关于c# - ContextMenuItem isEnabled 绑定(bind)到 Object 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45231343/
我希望仅当单击的节点是链接(即 href 是磁力链接或 torrent 链接)时我的上下文菜单项才可见。但是项目对于所有链接都是可见的,因为上下文函数没有执行,任何人都可以帮助为什么上下文函数没有执行
我有一个 ContextMenu 用于在 TreeView 中声明的 TreeView 项目:
我有一个应用程序已从 .NET Core 3.0 升级到 .NET Core 3.1。执行此操作后,由于缺少对 MenuItem 和 ContextMenuItem(来自 Winforms Syste
我是一名优秀的程序员,十分优秀!