2009-06-16 73 views
0

这是我的第一个问题。 我开始使用WPF,并且卡住了。这里的问题是: 我有一个ListView如下:WPF 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> 

我的列表结合“角色”,其中有只有标识和名称的集合。 我正在使用该DataTemplate在第一列中显示一个复选框。

这里是问题:

我怎么能知道用户在运行时是否检查复选框之一?在列表视图的.Items属性中,我拥有角色,但我无法获取有关第一列的任何信息。

我有这样的感觉,这是简单的,但不知何故,我错过了答案。

提前10倍。

+0

我在想现在这也是一个设计问题,因为我**应该**在角色中的信息。该死的。仍然问题仍然存在,我迫不及待地想通过wpf来克服noob阶段... – Teodor 2009-06-16 15:05:53

回答

1

你可以是

1)添加一个点击处理程序到模板中的复选框。在后面的代码中,您可以将复选框的DataContext转换回角色来确定它是哪一个。

2)您可以添加某种布尔属性到您的角色类。然后,您可以将复选框的IsChecked属性绑定到此布尔属性。你可能需要一个binding converter转换之间的布尔和检查属性

+0

谢谢你的回答,我刚刚尝试过你的第一个解决方案,它的工作原理! – Teodor 2009-06-17 11:03:48