.net 从调用页绑定到UserControl属性

.net 从调用页绑定到UserControl属性,.net,wpf,user-controls,dependency-properties,.net,Wpf,User Controls,Dependency Properties,我创建了一个具有dependency属性的用户控件。我可以在调用页面中很好地设置属性,并且在用户控件中一切都正常工作。但是,更改依赖项属性值时,不会通知承载用户控件的页面 用户控件中的依赖项属性为: public static readonly DependencyProperty SelectedSearchResultProperty = DependencyProperty.Register("SelectedSearchResult", typeof(SearchResult), typ

我创建了一个具有dependency属性的用户控件。我可以在调用页面中很好地设置属性,并且在用户控件中一切都正常工作。但是,更改依赖项属性值时,不会通知承载用户控件的页面

用户控件中的依赖项属性为:

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}"/>

期望的行为是依赖属性注册更改,并通过绑定通知宿主页面。然而,事实并非如此


谢谢

A
dependencProperty
更像是指向另一个属性的指针

您可以让它指向外部的
BoxAccountResult
属性,也可以让它指向
(SearchResult)args.NewValue
,但不能同时执行这两项操作


我认为您要做的是更新
OnSelectedSearchResultChanged
方法中的source
SelectedSearchResult
属性,而不是将该属性设置为新值。

DependencyProperty更像是指向另一个属性的指针,您可以让它指向您的外部框AccountResult属性,或者您可以让它指向(SearchResult)args.NewValue,但不能同时指向两者。我认为您要做的是更新OnSelectedSearchResultChanged方法中的source SelectedSearchResult属性,而不是将该属性设置为新值,这听起来似乎是对的,但我不确定该怎么做?@billp OnSelectedSearchResultChanged的目的是什么,谁来调用它?你甚至可能根本不需要它。但是如果我没记错的话,有一种方法可以获取绑定表达式并使用
UpdateSource
UpdateTarget
更新源属性,但是我现在记不起语法。