1

我对 WPF 非常陌生,我想制作一个带有Datagrid控件的数据输入表单。我被困住了,如何获取单元格数据值以将它们存储到数据库中?

就像在 Windows 中一样,我们过去常常通过gridview1.Rows[0].Cells[0].value.

如何在 WPF 中得到这个?

4

2 回答 2

-1

如果您是 WPF 新手,请通过以下两个链接开始并了解它是如何在 WPF 中完成的:

  1. WPF 中的绑定

  2. DataGrid 数据绑定

简而言之,您真的不必 gridview1.Rows[0].Cells[0].value在 WPF 中做任何事情,相反,您可以将网格绑定到数据源。然后尝试从数据源集合中获取值。(如果您没有查看特定于 UI,例如:第 0 行的单元格 0 等)

于 2016-04-07T11:09:34.797 回答
-1

您可以使用以下代码获取。

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}}"
于 2016-04-07T07:04:56.253 回答