WPF映射复选框以列出项目



我有一个带有复选框和文本框的网格,列表list1作为列表(of Stuff)填充文本框。prop1Stuff

的属性
<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>

我如何使用复选框来创建一个只有选中值的新列表?

编辑:Fixed XAML(2)

Stuff添加一个布尔IsChecked属性的包装类。将CheckBox.IsChecked属性绑定到StuffWrapper.IsChecked,将TextBox.Text属性绑定到StuffWrapper.Stuff。原来的ItemsSourceList<Stuff>,现在改成了List<StuffWrapper>

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

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

最新更新