【发布时间】:2014-08-23 03:37:01
【问题描述】:
我有由多个数据网格复选框组成的数据网格,我想获取数据网格选中的项目,我只能获取单个选定的行项目,但我需要选中复选框的集合,下面我正在使用的代码。请让我知道如何解决这个问题
**Xaml*****
<DataGrid SelectedItem="{Binding SelectedRow, Mode=TwoWay}" ItemsSource="{Binding ManualDataTable}" Background="{Binding ElementName=gd,Path=Background}">
<DataGrid.Columns>
<DataGridCheckBoxColumn Binding="{Binding UserID}" Width="60" />
<DataGridTextColumn Binding="{Binding Name}" Width="140" Header="Name" FontSize="16" FontFamily="segoe_uilight" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
<Button BorderBrush="{x:Null}" Content="Add participants" Width="220" Height="50" FontSize="20" Command="{Binding SaveAssignedUser}"/>
*****查看模型***********
DataTable _manualDataTable;
public DataTable ManualDataTable
{
get
{
return _manualDataTable;
}
set
{
_manualDataTable = value;
RaisePropertyChanged("ManualDataTable");
}
}
private List<DataRowView> selectedRow;
public List<DataRowView> SelectedRow
{
get
{
return selectedRow;
}
set
{
selectedRow = value;
RaisePropertyChanged(() => SelectedRow);
}
}
public void ExecuteSaveAssignedUser()
{
SelectedRow = new List<DataRowView>();**///need multiple checked checkboxes collection**
foreach (DataRowView drv in SelectedRow)
{
}
}
【问题讨论】:
-
您的 DataGridCheckBoxColumn 绑定到
UserID属性,我假设它是您的 DataTable 中的一列。当您选中和取消选中这些框时,此列值应该更新为 true/false。在您的ExecuteSaveAssignedUser()方法中,您应该能够遍历 DataTable 中的行并检查 UserID 的值以确定它是否已在该行中检查。 -
@AndrewStephens 正是我需要的是数据网格项目。但是我怎样才能在这里获得数据网格项目?你能提供一个代码行示例会有所帮助吗?而且在选定的行中它只给出一个项目我需要收藏
标签: wpf mvvm checkbox datagrid