Wpf 显示/隐藏基于DataGrid';什么样的选择?
我将上下文菜单设置为资源字典(因为它不能是用户控件): 问题: 1) 没有调用事件回调方法,即我没有看到“我在这里”日志 2) 如何根据打开事件中的复杂逻辑显示/隐藏某些上下文菜单项?基本上,我在问如何从事件回调访问数据网格,以便能够检索所选行?我知道如何设置Wpf 显示/隐藏基于DataGrid';什么样的选择?,wpf,xaml,user-controls,contextmenu,resourcedictionary,Wpf,Xaml,User Controls,Contextmenu,Resourcedictionary,我将上下文菜单设置为资源字典(因为它不能是用户控件): 问题: 1) 没有调用事件回调方法,即我没有看到“我在这里”日志 2) 如何根据打开事件中的复杂逻辑显示/隐藏某些上下文菜单项?基本上,我在问如何从事件回调访问数据网格,以便能够检索所选行?我知道如何设置可见性,但我不知道如何访问数据网格,以检索选定的模型/行 3) ResourceDictionary是这里的方法吗?我首先尝试了UserControl,但它抱怨ContextMenu不能有可视的父对象,因此,我想我不能使用它 谢谢你的帮助
可见性
,但我不知道如何访问数据网格
,以检索选定的模型/行
3) ResourceDictionary
是这里的方法吗?我首先尝试了UserControl
,但它抱怨ContextMenu
不能有可视的父对象,因此,我想我不能使用它
谢谢你的帮助 ContextMenuOpening事件不应该连接到DataGrid本身吗?@Dtex那么你的意思是我应该把它放在
DataGrid
上,让网格处理事件,然后让网格显示/隐藏它的上下文菜单项?嗯。我想上下文菜单应该隐藏/显示它的项目,在所有项目都属于上下文菜单之后?是的,我的意思是这将解决问题1。
<ResourceDictionary x:Class="Test.FooGridContextMenu"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ContextMenu x:Key="FooGridContextMenu" ContextMenuOpening="OnContextMenuOpening">
</ContextMenu>
</ResourceDictionary>
<DataGrid ContextMenu="{DynamicResource FooGridContextMenu}">...
using System;
using System.Windows;
using System.Windows.Controls;
namespace Test
{
public partial class FooGridContextMenu : ResourceDictionary
{
public FooGridContextMenu()
{
InitializeComponent();
}
void OnContextMenuOpening(object sender, ContextMenuEventArgs e)
{
Console.WriteLine("here i am");
}
}
}