如何访问XAML网格视图的选定行中的信息?

时间:2011-05-10 08:04:53

标签: wpf xaml gridview

我有一个listview,里面有一个gridview,它被绑定到一个自定义对象列表。在一个单元格中,我有三个我交换的元素,其中一个是带有click事件的超链接。

当我转到超链接上的click事件时,如何访问绑定在同一行的'CompanyName'?

这个问题可能是我的ASP.Net背景 - 我是WPF的新手。

<GridViewColumn Header="File" Width="100" DisplayMemberBinding="{Binding Path=CompanyFile}"/>
<GridViewColumn Header="Action" Width="300">
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBlock Text="{Binding Path=Status}" Visibility="{Binding Path=StatusVisibility}"></TextBlock>
                <TextBlock Visibility="{Binding Path=ButtonVisibility}"><Hyperlink Click="Hyperlink_Click"><TextBlock Text="{Binding Path=Button}"></TextBlock></Hyperlink></TextBlock>
                <ProgressBar Value="{Binding Path=Progress}" Visibility="{Binding Path=ProgressVisibility}"/>
            </StackPanel>
        </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>

1 个答案:

答案 0 :(得分:3)

Hyperlink继承了父DataContext的{​​{1}},因此您只需要投射它:

ListViewItem

另一种选择是将超链接的void Hyperlink_Click(object sender, EventArgs e) { Hyperlink link = (Hyperlink)sender; MyCustomObject obj = (MyCustomObject)link.DataContext; string companyName = obj.CompanyName; ... } 属性绑定到Command上的命令,而不是显式处理DataContext事件。这有助于将视图与业务相关的代码分离,这是在MVVM pattern中执行操作的常用方法。