gpt4 book ai didi

Silverlight MVVM : how to avoid polluting my model while still implementing "add new item" for my datagrid?

转载 作者:行者123 更新时间:2023-12-03 11:01:06 24 4
gpt4 key购买 nike

我有一个 DataGrid .现在它绑定(bind)到 ObservableCollection<Foo>在我的模型中很棒。

但是现在我要实现 a user-friendly way to add a new item to the datagrid .看来我需要修改FooIEditableObject 继承和 INotifyPropertyChanged ,在我看来,从 MVVM 的角度来看,这有点令人讨厌——这些看起来更像是 View 类型的实现细节。但不管怎样,没什么大不了的。

(编辑:澄清;Foo 在我的模型中,而不是 View 模型中。)

但现在我知道当我必须更改我的 ObservableCollection<Foo> 时我做错了。进入自定义CollectionOfFoo带有添加空白的逻辑 Foo每当用户提交更改时,项目到集合末尾,就像在引用的博客文章中一样。那东西绝对不属于我的模型。

我怎样才能实现这样一个漂亮的 UI 来添加新项目,同时保留我的 MVVM 特性?我在想也许我的集合周围有某种包装器来实现这一点,但我不确定如何使该包装器绑定(bind)回模型...... :-S。

最佳答案

That stuff definitely doesn't belong in my model.



但它绝对属于您的 View 模型。您的数据网格应该绑定(bind)到一个可观察的 View 模型类集合。

在我看来(如果 Foo 是 Model 类)你需要编写一个 FooViewModel 类。

另一种方法是在另一个控件中添加您的"new"项目,也许编写一个表单并在用户选择创建新行时让它出现在数据网格的顶部?

关于Silverlight MVVM : how to avoid polluting my model while still implementing "add new item" for my datagrid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1939903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com