wpf map复选框列出项目

时间:2011-07-26 18:08:32

标签: wpf checkbox binding

我有一个带有复选框和文本框的网格,列表 list1作为列表(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)

1 个答案:

答案 0 :(得分:1)

Stuff周围创建一个包装类,添加一个布尔IsChecked属性。将CheckBox.IsChecked属性绑定到StuffWrapper.IsChecked,并将TextBox.Text属性绑定到StuffWrapper.Stuff。而不是将ItemsSource存储为List<Stuff>,现在是List<StuffWrapper>

然后,要创建仅包含已检查项目的新列表,请使用Linq“Where”功能,如下所示:

var checkedList = list1.Where(s => s.IsChecked);