【发布时间】:2020-07-06 07:54:24
【问题描述】:
我有一个 MVVM 风格的 wpf 应用程序,带有 (Telerik Rad)Gridview。我希望每次用户更新单元格时都有一个事件。
GridView 绑定到 MyRowModel
public class MyRowModel : INotifyPropertyChanged
{
//...
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged([CallerMemberName] string name = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}
}
我想在我的视图模型中处理它们,我像这样绑定它们
var rows = MyRows.ForEach(p=> p.PropertyChanged += MyPropertyChangedHandler);
这可行,但我需要在某处取消绑定事件吗?用户可以从此视图返回,并选择另一组行。此外,每次发生单元格更改时,我都会从 servier 获取更新的行。
2,奖金问题) 这些(在我的情况下为 MyRowModel )是视图模型还是模型?
【问题讨论】:
-
试试
WeakEvent。您可以使用 WPF 实现或开源。最后,您可以自己实现。这不是魔法。 -
问题 1. 当您从
GridView删除/删除任何行时,分离这些事件。问题 2. 这些 ViewModel 是Models,因为它们没有任何关联的View。 -
感谢您的回答。我会检查我可以在哪里分离事件并检查弱事件。好的,称它们为模型是有道理的,因为它们没有视图
-
@Cowborg
MyRows是什么类型?你如何绑定MyRows,你能显示XAML吗?这是如何完成的用户可以从这个视图返回,并选择另一组行。?
标签: c# wpf mvvm gridview telerik-grid