我是 WPF 的新手,来自 WinForms 背景,并且有一个关于绑定与事件处理的相当基本的问题。
为了尝试保持某种责任分离,我有一堆Presentation
对象,它们只需要Dependency Properties
保存业务对象的 UI 数据部分,业务对象包含相似的数据,但数据类型有时不同,因此Presentation
对象是正确的显示目的。所以像
public class MyPresentation
{
// bunch of dependency properties
public bool MyProperty
{
get { return (bool)GetValue(MyPropertyProperty); }
set { SetValue(MyPropertyProperty, value); }
}
// Using a DependencyProperty as the backing store for MyProperty. This enables animation, styling, binding, etc...
public static readonly DependencyProperty MyPropertyProperty =
DependencyProperty.Register("MyProperty", typeof(bool), typeof(MyPresentationObject), new UIPropertyMetadata(false, MyPresentationObject.MyPropertyPropertyChanged));
MyBusinessObject RelatedBusinessObject { get; set;}
public MyPresentation(MyBusinessObject businessObejct)
{
this.RelatedBusinessObject = businessObject;
}
public static void MyPropertyPropertyChanged()
{
// Do some stuff to related business objects
}
}
的属性MyPresentation
然后是数据绑定到各种控件,我使用Trigger
s 等来更改表示依赖属性,这会导致OnPropertyChanged
事件中的业务对象更改
我的问题是我是否以正确的方式使用绑定?Binding
通常(在 Winforms 中)我会使用点击事件等来更改我的业务对象(或它们的演示版本)的值,但是现在您可以使用、Trigger
s 和事件,这些事件和那种事件处理似乎是多余的OnPropertyChanged
。
我错过了什么吗?