选中复选框并从列表视图行获取其同级

本文关键字:获取 视图 列表 复选框 | 更新日期: 2023-09-27 18:30:41

我有一个C#,WPF ListView,每行都有复选框和一个字符串。当我单击该复选框时,我希望它能够获取同一行中的同级字符串,但我不太知道如何。我是 WPF 菜鸟。

我将我的列绑定到一个名为 Row 的传入对象的属性,该对象具有 Name 和指示它是否处于活动状态的布尔值。

这几乎就像我需要沿着可视化树向上走去获取"行",然后抓住不是复选框的孩子。

任何建议将不胜感激。下面的 XAML。

美杰

        <ListView Name="CompanyListView" Width="300" Height="200">
            <ListView.View>
                <GridView>
                    <GridView.Columns>
                        <GridViewColumn Width="25">
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <CheckBox IsChecked="{Binding Path=Active}" Click="CompanyCheckboxClicked"/>
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                        </GridViewColumn>
                        <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Path=Name}" Width="250"/>                      
                    </GridView.Columns>
                </GridView>
            </ListView.View>
        </ListView>

选中复选框并从列表视图行获取其同级

复选框的 DataContext 应包含 Row 对象。

private void CompanyCheckboxClicked(object sender, RoutedEventArgs e)
{
    CheckBox checkBox = sender as CheckBox;
    Row row = checkBox.DataContext as Row;
    ...
}