依存関係プロパティを持つユーザー コントロールを作成しました。呼び出しページでプロパティを設定でき、すべてがユーザー コントロール内で正しく機能します。ただし、依存関係プロパティの値が変更された場合、ユーザー コントロールをホストするページには通知されません。
ユーザー コントロールの依存関係プロパティは次のとおりです。
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}"/>
期待される動作は、依存関係プロパティが変更を登録し、バインディングを介してホスティング ページに通知することです。しかし、そうではありません。
ありがとう!