【问题标题】:wpf map checkboxes to list itemswpf 将复选框映射到列表项
【发布时间】:2011-10-13 15:38:32
【问题描述】:

我有一个带有复选框和文本框的网格,一个列表 list1 as list(of Stuff) 填满了文本框。 prop1 是 Stuff

的属性
<Grid Name="MainGrid">  
   <ItemsControl ItemsSource="{Binding}">
    <ItemsControl.ItemTemplate>
     <DataTemplate>
       <Grid Name="g1">  
         <CheckBox Grid.Column="0" Checked="CheckBox_Checked"/>
         <TextBox Grid.Column="1" Name="TextBox1" Text="{Binding prop1}" />
       </Grid>
     </DataTemplate>
   </ItemsControl.ItemTemplate>
  </ItemsControl>
</Grid>

如何使用复选框创建一个仅包含选中值的新列表?

编辑:修复 XAML(2)

【问题讨论】:

  • 您的 XAML 无效。你不能像这样在Grid 中拥有DataTemplate。
  • 与stackoverflow.com/questions/859227/… 类似的问题,我在 Stuff 中添加了另一个属性 isSelected 来处理它的选中状态

标签: wpf checkbox binding


【解决方案1】:

围绕Stuff 创建一个包装类,添加一个布尔值IsChecked 属性。将CheckBox.IsChecked 属性绑定到StuffWrapper.IsChecked,并将TextBox.Text 属性绑定到StuffWrapper.Stuff。而不是将您的ItemsSource 存储为List&lt;Stuff&gt;,现在它是List&lt;StuffWrapper&gt;。

然后,要创建一个仅包含选中项的新列表,请使用 Linq 的“Where”函数,如下所示:

var checkedList = list1.Where(s =&gt; s.IsChecked);

【讨论】:

  • 我所做的差不多,我在 cmets 中发布了答案的链接。我无法在 8 小时内回复我自己的帖子,因为我是新人。
  • 哦,没在 cmets 看到你。干杯!
猜你喜欢
  • 2016-06-11
  • 2015-02-07
  • 1970-01-01
  • 1970-01-01
  • 2020-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多