首页 > 解决方案 > 如何强制 WPF DataGrid 在一行后面实例化新的 viewmodel 对象?

问题描述

我有一个带有几个单选按钮列和几个文本框列的 WPF DataGrid。

所有列都是 DataGridTemplateColumns,因此我可以自定义字符串显示格式。(不确定这是否与任何事情有关。)

有两列带有单选按钮,它们应该组合在一起以允许用户选择一个或另一个。

在一行后面的视图模型中,有代码为这对单选按钮生成一个唯一的组名,以便每一行都有自己的一组互斥选项。

问题是,在激活文本框之前,DataGrid 似乎不会实例化行的视图模型。那是触发构造函数的时候。在那之前,没有唯一的组名,因此用户可以选择两个单选按钮。一旦构造函数运行,单选按钮就会正常运行。

有没有办法在 DataGrid 显示新行时强制实例化视图模型?

标签: wpfwpfdatagrid

解决方案


单选按钮应该有一个可以绑定的命令 - 允许您以编程方式实例化视图模型。您可以将行的数据上下文作为命令的参数发送(这甚至可能强制实例化),然后您可以实例化它并将其添加到 DataGrid 用作 DataSource 的集合中(如果它仍然为空)。


推荐阅读