从TextBlock MouseDown获取DataContext [英] Get DataContext from TextBlock MouseDown

查看:42
本文介绍了从TextBlock MouseDown获取DataContext的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

ListView GridView中的绑定列

Bound column in a ListView GridView

如何在MouseDown事件中获取数据源

How to get the DataSource in a MouseDown event

<GridViewColumn.CellTemplate>
    <DataTemplate>  
         <TextBlock Text="{Binding Path=Name, Mode=OneWay}" 
                    MouseDown="NameCol_mousedown"/>
    </DataTemplate>
</GridViewColumn.CellTemplate>

这可以在另一个项目中使用ListView中的按钮进行工作.

This works in another project with a button in a ListView.

这是它尝试过的...

This is what it tried ...

错误无法将类型为"MS.Internal.NamedObject"的对象转换为类型为"ListViewDragDrop.DocProp"的对象.

Error Unable to cast object of type 'MS.Internal.NamedObject' to type 'ListViewDragDrop.DocProp'.

数据源是DocProp.

The DataSource is DocProp.

private void NameCol_mousedown(object sender, MouseButtonEventArgs e)
{
    TextBlock tb = (TextBlock)sender;
    object data = tb.DataContext;
    dataSource = (DocProp)tb.DataContext;
}

推荐答案

尝试一下...

private void NameCol_mousedown(object sender, MouseButtonEventArgs e)
{
    var tb = (TextBlock)e.OriginalSource;
    var dataCxtx = tb.DataContext;
    var dataSource = (DocProp)dataCxtx;
}

这篇关于从TextBlock MouseDown获取DataContext的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆