我对 WPF 非常陌生,我想制作一个带有Datagrid
控件的数据输入表单。我被困住了,如何获取单元格数据值以将它们存储到数据库中?
就像在 Windows 中一样,我们过去常常通过gridview1.Rows[0].Cells[0].value
.
如何在 WPF 中得到这个?
我对 WPF 非常陌生,我想制作一个带有Datagrid
控件的数据输入表单。我被困住了,如何获取单元格数据值以将它们存储到数据库中?
就像在 Windows 中一样,我们过去常常通过gridview1.Rows[0].Cells[0].value
.
如何在 WPF 中得到这个?
如果您是 WPF 新手,请通过以下两个链接开始并了解它是如何在 WPF 中完成的:
简而言之,您真的不必
gridview1.Rows[0].Cells[0].value
在 WPF 中做任何事情,相反,您可以将网格绑定到数据源。然后尝试从数据源集合中获取值。(如果您没有查看特定于 UI,例如:第 0 行的单元格 0 等)
您可以使用以下代码获取。
public void DataGridCellValue(object param)
{
string clipboard = string.Empty;
if (param != null)
{
if (param is DataGridCell)
{
DataGridCell cell = (DataGridCell)param;
dynamic column = cell.Column as DataGridTextColumn;
if (cell.Column is DataGridTextColumn)
column = cell.Column as DataGridTextColumn;
if (cell.Content is TextBlock)
{
TextBlock tBlock = cell.Content as TextBlock;
clipboard = string.IsNullOrEmpty(tBlock.Text) ? string.Empty : tBlock.Text.Trim();
}
}
else if (param.GetType().IsValueType)
{
clipboard = param.ToString();
}
}
}
#endregion
}
public ICommand DataGridCellValue
{
get
{
return new DelegatingCommand((object param) =>
{
new Action(() =>
{
DataGridCopyToClipBoard(param);
}).Invoke();
});
}
}
在您的 WPF XAML 中像这样使用绑定
"{Binding CurrentCell, RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}}"
命令和命令参数是
Command="{Binding DataGridCellValue}"
CommandParameter="{Binding CurrentCell, RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}}"