我有一个自定义类MyPerson。所有(相关)属性都实现了INotifyPropertyChanged。 我创建了一个UserControl来显示它,一切正常。绑定到MyPerson.FirstName(字符串)等属性都可以正常工作 - 它们按预期显示和更新(双向绑定)。
现在我想在代码隐藏中做更复杂的事情,所以我想创建一个PropertyType为MyPerson的DependencyProperty,但我不知道如何构造DependencyProperty,特别是PropertyChangedCallback部分。
可以这样做吗?怎么会这样?
答案 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
}