4

ListView GridView 中的绑定列

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

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

这适用于另一个项目,在 ListView 中有一个按钮。

这是它尝试过的......

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

数据源是 DocProp。

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

2 回答 2

9

试试这个...

private void NameCol_mousedown(object sender, MouseButtonEventArgs e)
{
    var tb = (TextBlock)e.OriginalSource;
    var dataCxtx = tb.DataContext;
    var dataSource = (DocProp)dataCxtx;
}
于 2013-06-24T07:59:47.923 回答
3

对于仍然有问题的任何人,这也可以正常工作。

private void MenuItem_Click(object sender, RoutedEventArgs e)
{
    var baseobj = sender as FrameworkElement;
    var myObject = baseobj.DataContext as (Object you expect);

    // Example: var myObject = baseobj.DataContext as Dog;
    // myObject.Bark();
}
于 2016-03-31T17:41:04.230 回答