在数据网格的第一列单元格中输入的值应使用 WPF 填充在同一单元格的其他列中



如何设计具有以下要求的应用程序。因为我是WPF的菜鸟,我正在研究一种方法。[写起来就够了]

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

  • 将作为 WPF 网格视图中的第一行的行。

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

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

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

  • 处理排序、
  • 过滤、分页、列重新排序、列大小调整等

    • 允许自定义单元格模板和编辑单元格模板

条件:

将来应用于其他网格

无代码隐藏

坚持良好的OOPs,WPF设计原则,可测试,可在内部实现 一个 MVVM 框架。

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

我建议这样做是因为它适合数据网格的工作方式。它已经是单独的行,您可以绑定到不同的对象等等。

您将定义这一点。

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

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

将文本框绑定到另一个对象会有点繁琐,因为列是抽象的,不在可视化树中。不过,如果您使用谷歌搜索,您将能够找到有关绑定的问题。

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

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

最新更新