Wpf 设置datagrid中每行的复选框值

Wpf 设置datagrid中每行的复选框值,wpf,checkbox,binding,datagrid,Wpf,Checkbox,Binding,Datagrid,我的datagrid中的每一行都有一个复选框: <DataGrid.Columns> <DataGridTextColumn Binding="{Binding Number}" Header="Name"/> <DataGridTemplateColumn Header="Watched"> <DataGridTemplateColumn.CellTemplate> <DataTemplate

我的datagrid中的每一行都有一个复选框:

  <DataGrid.Columns>
    <DataGridTextColumn Binding="{Binding Number}" Header="Name"/>
    <DataGridTemplateColumn Header="Watched">
      <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
          <CheckBox x:Name="checkWatched" IsChecked="{Binding Path=Watched, Mode=TwoWay}" Click="checkWatched_Click" />
        </DataTemplate>
      </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
  </DataGrid.Columns>

我的数据库包含复选框的值(true或false)。 如何为datagrid中的每一行设置复选框的值?

创建一个实现INotifyPropertyChanged的类(我们现在称之为MyObject)。在MyObject中创建一个类型为bool的名为“Watched”的属性。在setter中,引发属性更改事件。如果希望网格在任何人调用setter时反映对数据的任何更改,则这是必需的

创建一个名为WatchedList的MyObject集合。现在,在数据库中的“foreach”项中,向WatchedList添加一个新对象,以反映数据库中的值

然后在XAML中,在数据网格上设置
ItemsSource=“{Binding WatchedStatuses}”


然后,您可以从代码中获取WatchedList中每个项目的Watched值

您已经通过绑定实现了这一点。您不需要在WPF中“foreach a DataGrid”,原因很简单。迭代数据项并修改
wasted
属性。