Wpf 使用UIPropertyMetadata的.NET 4.0依赖项属性不起作用
我有以下在.NET 3.5中非常有效的依赖项属性定义:Wpf 使用UIPropertyMetadata的.NET 4.0依赖项属性不起作用,wpf,.net-4.0,dependency-properties,Wpf,.net 4.0,Dependency Properties,我有以下在.NET 3.5中非常有效的依赖项属性定义: public static readonly DependencyProperty SelectedIdsProperty = DependencyProperty.Register( "SelectedIds", typeof(IEnumerable), typeof(AddressBookSelector), new UIPropertyMeta
public static readonly DependencyProperty SelectedIdsProperty =
DependencyProperty.Register(
"SelectedIds",
typeof(IEnumerable),
typeof(AddressBookSelector),
new UIPropertyMetadata(null, UpdateUIText));
public IEnumerable SelectedIds
{
get { return (IEnumerable)GetValue(SelectedIdsProperty); }
set
{
SetValue(SelectedIdsProperty, value);
}
}
static void UpdateUIText(DependencyObject depObj, DependencyPropertyChangedEventArgs e)
{
(depObj as AddressBookSelector).UpdateRichTextBox();
}
当我编译代码以在.NET 4.0上运行时,当SelectedDS的值更改时,不再调用UpdateUIText。如何更正此问题?我花时间用.NET 4.0编译代码,当我修改
selecteds
的值时,似乎正确调用了UpdateUIText()
,如下所示:\u selector.selecteds=new List()
。因此,一切似乎都很好。如何修改SelectedIds
?SelectedIds的分配方式如下:SelectedIds=AddrBookEditor.SelectedItems,其中SelectedItems是一个可观察的集合。有趣的是,如果我也选择了selectedds=newlist,就会调用UpdateUIText。