在datagrid中设置复选框值foreach行

时间:2014-03-25 18:46:24

标签: wpf checkbox binding datagrid

我在数据网格中的foreach行中有一个复选框:

  <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中设置行的复选框的值?

1 个答案:

答案 0 :(得分:0)

创建一个实现INotifyPropertyChanged的类(我们现在称之为MyObject)。在MyObject中创建一个名为“Watched”的bool类型的属性。在setter中,提升您的属性更改事件。如果您希望网格在任何人调用setter时反映数据的任何更改,则必须执行此操作。

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

然后在您的XAML中,在DataGrid上设置ItemsSource = "{Binding WatchedStatuses}"

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