获取有关WPF中ListView中嵌套复选框状态的信息

h5qlskok  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(149)

问题就在这里:
我有一个ListView如下:

<UserControl.Resources>
    <DataTemplate x:Key="FirstCell">
        <StackPanel Orientation="Horizontal">
            <CheckBox Margin="2"></CheckBox>
        </StackPanel>
    </DataTemplate>
</UserControl.Resources>

<ListView Name="lvRights">
    <ListView.View>
        <GridView>
            <GridViewColumn Width="100" Header="Select" CellTemplate="{StaticResource FirstCell}"/>
            <GridViewColumn Width="200" Header="Right" DisplayMemberBinding="{Binding Path=Name}" />
        </GridView>       
    </ListView.View>
</ListView>

我正在将列表绑定到“角色”的集合,这些角色只有ID和名称。我正在使用该DataTemplate在第一列中显示复选框。
问题是:
如何在运行时知道用户是否选中了某个复选框?在列表视图的.Items属性中,我有Roles,但我无法获得关于第一列的任何信息。

3z6pesqy

3z6pesqy1#

您可以
1)向模板中的复选框添加一个单击处理程序。在后面的代码中,您可以将复选框的DataContext强制转换回Role以确定它是哪一个。
2)您可以向Role类添加某种布尔属性。然后可以将复选框的IsChecked属性绑定到此布尔属性。您可能需要一个binding converter来在布尔属性和is checked属性之间进行转换

相关问题