问题就在这里:
我有一个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,但我无法获得关于第一列的任何信息。
1条答案
按热度按时间3z6pesqy1#
您可以
1)向模板中的复选框添加一个单击处理程序。在后面的代码中,您可以将复选框的DataContext强制转换回Role以确定它是哪一个。
2)您可以向Role类添加某种布尔属性。然后可以将复选框的IsChecked属性绑定到此布尔属性。您可能需要一个binding converter来在布尔属性和is checked属性之间进行转换