自定义对象作为DependencyProperty

时间:2013-03-17 09:04:00

标签: wpf user-controls inotifypropertychanged

我有一个自定义类MyPerson。所有(相关)属性都实现了INotifyPropertyChanged。 我创建了一个UserControl来显示它,一切正常。绑定到MyPerson.FirstName(字符串)等属性都可以正常工作 - 它们按预期显示和更新(双向绑定)。

现在我想在代码隐藏中做更复杂的事情,所以我想创建一个PropertyType为MyPerson的DependencyProperty,但我不知道如何构造DependencyProperty,特别是PropertyChangedCallback部分。

可以这样做吗?怎么会这样?

1 个答案:

答案 0 :(得分:1)

阅读本文 - Custom Dependency Properties

像 -

public static readonly DependencyProperty MyPersonValueProperty = 
      DependencyProperty.Register( "MyPersonValue", typeof(MyPerson), 
         typeof(MyPersonControl), new FrameworkPropertyMetadata(null, 
             FrameworkPropertyMetadataOptions.AffectsRender,
               new PropertyChangedCallback(OnPersonChanged) ) ); 

public MyPerson ThePerson
{ 
    get { return (MyPerson)GetValue(MyPersonValueProperty); }
    set { SetValue(MyPersonValueProperty, value); }
}

private static void OnPersonChanged(DependencyObject d, 
                                 DependencyPropertyChangedEventArgs e)
{
    // Property change code here
}