C# 是否从datagrid wpf获取所选记录?
我已经把桌子画好了。根据post field checkbox,如果选中该复选框,我会将其写入文件并从数据库中删除这些记录。如果未选中,则记录将保留在我的数据库中。问题是,当我尝试访问这些记录时,我会得到一个异常,可以找到该对象,因为我尝试使用datagrid.SelectedIndex访问它,它给我datagrid索引而不是record索引。有没有办法获得记录索引?我得到了自动索引,每个记录的唯一Id递增1C# 是否从datagrid wpf获取所选记录?,c#,wpf,datagrid,indexing,C#,Wpf,Datagrid,Indexing,我已经把桌子画好了。根据post field checkbox,如果选中该复选框,我会将其写入文件并从数据库中删除这些记录。如果未选中,则记录将保留在我的数据库中。问题是,当我尝试访问这些记录时,我会得到一个异常,可以找到该对象,因为我尝试使用datagrid.SelectedIndex访问它,它给我datagrid索引而不是record索引。有没有办法获得记录索引?我得到了自动索引,每个记录的唯一Id递增1 提前感谢如果您使用viewmodel或其他工具,只需使用命令和选定的datagridr
提前感谢如果您使用viewmodel或其他工具,只需使用命令和选定的datagridrow作为commandparameter即可。在命令中,您可以轻松访问下划线数据,检查Post属性和wirte文件,并从集合中删除行
<Buttons Command="{Binding WriteCommand}" CommandParameter="{Binding ElementName=MyDataGridCtrl, Path=SelectedItem}" />
如果您有一个DataTable作为数据源,那么您的命令可能如下所示
private DelegateCommand<DataRowView> _writeCommand ;
public ICommand WriteCommand
{
get
{
return this._writeCommand ??
(this._writeCommand = new DelegateCommand<DataRowView>(this.WriteCommandExecute, this.CanWriteCommandExecute));
}
}
private bool CanEditDataCommandExecute(DataRowView rowToWrite)
{
return rowToWrite!= null && (bool)rowToWrite["Post"];//if post is a bool
}
private void EditDataCommandExecute(DataRowView rowToWrite)
{
if (!this.CanEditDataCommandExecute(rowToWrite))
return;
//do your stuff here
}
我找到了答案,System.Windows.Controls.DataGrid DataGrid=发送方为System.Windows.Controls.DataGrid;DataGridRow row=DataGridRowdataGrid.ItemContainerGenerator.ContainerFromIteme.row.Item;BridgeDesktopApp.SalesOrder nn=SalesOrder行.Item;int xcxc=nn.orderId;