我创建了一个具有依赖属性的用户控件。我可以很好地设置调用页面中的属性,并且在用户控件中一切正常。但是,当依赖项属性值发生更改时,不会通知承载用户控件的页面。
用户控件中的依赖属性为:
public static readonly DependencyProperty SelectedSearchResultProperty = DependencyProperty.Register("SelectedSearchResult", typeof(SearchResult), typeof(QPowerFinder), new PropertyMetadata(null, OnSelectedSearchResultChanged));
public SearchResult SelectedSearchResult
{
get { return (SearchResult)this.GetValue(SelectedSearchResultProperty); }
set
{
this.SetValue(SelectedSearchResultProperty, value);
RaisePropertyChanged("SelectedSearchResult");
}
}
private static void OnSelectedSearchResultChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
{
(obj as QPowerFinder).SelectedSearchResult = (SearchResult)args.NewValue;
}
托管用户控件的页面设置为:
<localcont:QPowerFinder Grid.Column="1" SelectedSearchResult="{Binding BoxAccountResult, Mode=TwoWay}"/>
希望的行为是依赖属性注册更改,并通过绑定通知托管页面。然而,事实并非如此。
谢谢!