【发布时间】:2016-04-07 06:49:14
【问题描述】:
我对 WPF 非常陌生,我想制作一个带有Datagrid 控件的数据输入表单。我被困住了,如何获取单元格数据值以将它们存储到数据库中?
就像在 windows 中一样,我们曾经通过gridview1.Rows[0].Cells[0].value 来获取它。
如何在 WPF 中得到这个?
【问题讨论】:
标签: wpf xaml wpf-controls wpfdatagrid datagridcell
我对 WPF 非常陌生,我想制作一个带有Datagrid 控件的数据输入表单。我被困住了,如何获取单元格数据值以将它们存储到数据库中?
就像在 windows 中一样,我们曾经通过gridview1.Rows[0].Cells[0].value 来获取它。
如何在 WPF 中得到这个?
【问题讨论】:
标签: wpf xaml wpf-controls wpfdatagrid datagridcell
您可以使用以下代码获取。
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 和 CommandParameter 是
Command="{Binding DataGridCellValue}"
CommandParameter="{Binding CurrentCell, RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}}"
【讨论】:
如果您是 WPF 新手,请通过以下两个链接开始并了解它在 WPF 中是如何完成的:
简而言之,你真的不需要做
gridview1.Rows[0].Cells[0].value在 WPF 中,你可以绑定你的 网格到数据源。然后尝试从数据源中获取值 集合。(如果您没有查看特定于 UI 的内容,例如:第 0 行的单元格 0 等)
【讨论】: