[英]Detect DataContext change in user control
我正在實現一個UserControl
,我想檢測是否從代碼中更改了 DataContext。 FrameworkElement.DataContext.Get
不是虛擬的,所以我不能覆蓋它。 我可以用new
隱藏它,但我相信有更好的方法來做到這一點。 在 WPF 中有類似 DataContextChanged 事件的東西。 我們可以用 Windows Phone 做類似的事情嗎?
在您的用戶控件構造函數中添加:
this.SetBinding(BoundDataContextProperty, new Binding());
然后添加這些:
public static readonly DependencyProperty BoundDataContextProperty = DependencyProperty.Register(
"BoundDataContext",
typeof(object),
typeof(MyUserControl),
new PropertyMetadata(null, OnBoundDataContextChanged));
private static void OnBoundDataContextChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
// e.NewValue is your new DataContext
// d is your UserControl
}
您正在尋找類似這樣的PropertyChangedNotifier
注冊到 frameworkelement.datacontextchanged 事件
你可以在這里找到答案, https://docs.microsoft.com/en-us/dotnet/api/system.windows.frameworkelement.datacontextchanged?view=net-5.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.