Я новичок в WPF и пришел из опыта работы с WinForms и имею довольно простой вопрос о связывании и обработке событий.
Чтобы попытаться сохранить некоторое разделение ответственности, у меня есть куча Presentation
объектов, которые просто имеют Dependency Properties
для хранения частей данных пользовательского интерфейса бизнес-объекта, бизнес-объект содержит аналогичные данные, но типы данных иногда отличается, так что объект 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
событии
У меня вопрос: правильно ли я использую привязку? Обычно (в Winforms) я бы использовал события щелчка и т. Д., Чтобы изменить значения своих бизнес-объектов (или их версий презентации), но события такого рода и обработка событий такого рода кажутся излишними, когда вы можете использовать Binding
, Trigger
с и OnPropertyChanged
события.
Я что-то упустил?