У меня есть пользовательский элемент управления, и у него есть свойство зависимости.Этот пользовательский элемент управления довольно сложен, поэтому я решил создать для него модель представления, но пока не реализовал его.Я думаю о создании модели представления, имеющей некоторые свойства, которые связаны с пользовательским элементом управления.
Вот мой пример кода,
UserControl.xaml
<StackPanel>
<TextBlock Text={Binding Age} />
<TextBlock Text={Binding Name} />
</StackPanel>
UserControl.cs
public Person Person
{
get { return (Person)GetValue(PersonProperty); }
set { SetValue(PersonProperty, value); }
}
public static readonly DependencyProperty PersonProperty = DependencyProperty.Register("Person", typeof(Person), typeof(SampleUserControl), new PropertyMetadata(null, propertyChangedCallback));
private static void propertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
// I want to update the view model here
// Something like the following
(this.DataContext as MyViewModel).Person = Person;
}
MyViewModel
public Person Person
{
get { return _person; }
set
{
_pserson = person;
RaisePorpertyChanged("Age");
RaisePorpertyChanged("Name");
}
}
public int Age{ get; set; }
public string Name{ get; set; }
Итак, вы думаете, что это хорошая практика?Я имею в виду обновление модели представления, когда обновляется свойство зависимости, и, надеюсь, кто-то учит меня, как обновить модель представления внутри PropertyChangedCallback :) Кстати, я использую инструментарий MVVM Light.