WPF Datagrid 绑定:访问视图模型中绑定集合的当前评估项
WPF Datagrid Binding: Accessing currently evaluated item of bound collection in the view model
我正在将 DataGrid
绑定到 ObservableCollection<MyModel>
。网格由一些列组成,这些列通过 <DataGridTextColumn Content="{Binding LastName}" />
等绑定到模型的属性,效果很好。
现在我想用计算值向网格添加一列 SumOfAllReferencesToMyModelInstance
,它采用集合中每个 MyModel
的 Id
属性 并使用它计算实例在其他一些地方的出现次数,从而导致每个实例/网格行的值不同。我可以轻松地将列绑定到我的视图模型中的自定义 属性,但我无法获得对当前评估的 MyModel
实例的引用以读取其 Id
,这显然是我需要的计算。我怎样才能做到这一点?
我想避免向包含计算值的模型 class 添加 SumOfAllReferencesToMe
属性,因为计算不是模型的一部分。
我将 MVVM 与 Caliburn.Micro 一起使用,但我认为这无关紧要,因为这对我来说似乎是一个更普遍的问题。
I'd like to avoid adding a SumOfAllReferencesToMe property to the model class containing the calculated value since the calculation is not a part of the model.
因此,将 MyModel
替换为包含您打算在视图中显示的值的 view 模型。直接绑定到实体或业务对象很少是个好主意。
解决此问题的 MVVM 方法是 MyModel
在视图友好 class 中,添加另一个 属性 并从当前“主”视图模型。
我正在将 DataGrid
绑定到 ObservableCollection<MyModel>
。网格由一些列组成,这些列通过 <DataGridTextColumn Content="{Binding LastName}" />
等绑定到模型的属性,效果很好。
现在我想用计算值向网格添加一列 SumOfAllReferencesToMyModelInstance
,它采用集合中每个 MyModel
的 Id
属性 并使用它计算实例在其他一些地方的出现次数,从而导致每个实例/网格行的值不同。我可以轻松地将列绑定到我的视图模型中的自定义 属性,但我无法获得对当前评估的 MyModel
实例的引用以读取其 Id
,这显然是我需要的计算。我怎样才能做到这一点?
我想避免向包含计算值的模型 class 添加 SumOfAllReferencesToMe
属性,因为计算不是模型的一部分。
我将 MVVM 与 Caliburn.Micro 一起使用,但我认为这无关紧要,因为这对我来说似乎是一个更普遍的问题。
I'd like to avoid adding a SumOfAllReferencesToMe property to the model class containing the calculated value since the calculation is not a part of the model.
因此,将 MyModel
替换为包含您打算在视图中显示的值的 view 模型。直接绑定到实体或业务对象很少是个好主意。
解决此问题的 MVVM 方法是 MyModel
在视图友好 class 中,添加另一个 属性 并从当前“主”视图模型。