在数据网格第一列单元格中输入的值应使用WPF

时间:2019-06-13 08:47:44

标签: c# wpf xaml

如何设计具有以下要求的应用程序。由于我是WPF的新手,因此我正在研究一种方法。 [写够了]

WPF应用程序具有以下要求。

  • 位于WPF GridView中第一行的行。

  • 该行将位于网格列标题的下方和数据行的上方,并位于 位于网格本身内。

  • 第一行中的任何单元格接收到数据时,该数据将填充到 网格中同一单元格的列

  • 在单元格向下更新列之后,单元格内容[在第一个 行]被清除

  • 句柄排序,过滤,分页,列重新排序,列大小调整等

    • 允许自定义CellTemplate和EditCellTemplate

条件:

将来会应用于其他网格

后面没有代码

坚持良好的操作规范,WPF设计原则,可测试,可在内部实现  MVVM框架。

1 个答案:

答案 0 :(得分:1)

我能想到的最简单的方法是使用每一列的标题模板。

我建议这样做,因为它与datagrid的工作方式相适应。已经是单独的行,您可以绑定到其他对象,依此类推。

您将对此进行定义。

这看起来像下面的标记(这只是空代码)。

<DataGridTextColumn …..
    <DataGridTextColumn.HeaderTemplate>
        <DataTemplate>
           <StackPanel>
              <TextBlock Text="Some Header Text"/>
              <TextBox Text="{Binding SomeDefaultForThisColumn}"

将文本框绑定到另一个对象会有些麻烦,因为列是抽象的,不在可视树中。如果您通过Google进行搜索,就可以找到有关绑定的问题。

当用户单击数据网格中的最后一行以添加时,将使用绑定类型的构造函数。因此,我建议注入包含标头编辑数据或某种工厂方法设置属性的对象。

当然,您可能希望能够关闭设置行视图模型的任何属性,因此在更新现有属性时这不是问题。