如何从 listView 列 C# WPF 上的命中测试方法获取 DataContext
How to get DataContext from hit test method on listView column C# WPF
我尝试确定在我的 listView 上点击了哪个列的 header。
为此我添加了事件方法 previewMouseLeftButtonUp。
<ListView x:Name="offers_listView" Margin="10,10,10,227" Height="500" HorizontalContentAlignment="Center" PreviewMouseLeftButtonUp="offers_listView_PreviewMouseLeftButtonUp">
实现如下:
private void offers_listView_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
var point = Mouse.GetPosition(offers_listView);
var hit = offers_listView.InputHitTest(point);
offers_listView.IsHitTestVisible = true;
//if(hit.DataContext == "")
//{
//}
}
所以我想要的是列的名称,并且在调试模式下我找到了它:
问题是在编码模式下我无法获得 属性 DataContext,您可能会在下面的屏幕上看到:
我的问题是如何以其他方式获取此信息,或者如何激活 DataContext 属性 以在此刻发挥作用?
提前致谢,问候
hit
派生自 FrameworkElement
因为它是被命中的 UIElement
,调试器识别它。如果你想访问 属性 DataContext
你必须将 hit
转换为 FrameWorkElement
.
示例:
object dataContext = (hit as FrameworkElement).DataContext;
我尝试确定在我的 listView 上点击了哪个列的 header。
为此我添加了事件方法 previewMouseLeftButtonUp。
<ListView x:Name="offers_listView" Margin="10,10,10,227" Height="500" HorizontalContentAlignment="Center" PreviewMouseLeftButtonUp="offers_listView_PreviewMouseLeftButtonUp">
实现如下:
private void offers_listView_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
var point = Mouse.GetPosition(offers_listView);
var hit = offers_listView.InputHitTest(point);
offers_listView.IsHitTestVisible = true;
//if(hit.DataContext == "")
//{
//}
}
所以我想要的是列的名称,并且在调试模式下我找到了它:
问题是在编码模式下我无法获得 属性 DataContext,您可能会在下面的屏幕上看到:
我的问题是如何以其他方式获取此信息,或者如何激活 DataContext 属性 以在此刻发挥作用?
提前致谢,问候
hit
派生自 FrameworkElement
因为它是被命中的 UIElement
,调试器识别它。如果你想访问 属性 DataContext
你必须将 hit
转换为 FrameWorkElement
.
示例:
object dataContext = (hit as FrameworkElement).DataContext;