我在主窗口中有自己的名为FlashControl的usercontrol。我通过mainwondow中的代码
设置DataContext (FlashControl.Content as FrameworkElement).DataContext = null;
(FlashControl.Content as FrameworkElement).DataContext = this.DataContext;
FlashControl.DataContext = this.DataContext;
我的问题是每当我的datacontext改变时,我需要调用上面的代码来重置usercontrol的datacontext。为什么Usercontrol的DataContext在主DataContext更改时不会自动更新?怎么做自动更新?我错过了什么吗?
答案 0 :(得分:2)
如果您想要自动更新,请不要直接设置DataContext,而是将其绑定到您想要的值。 你应该在xaml中绑定,但如果你想在代码中做,那么你可以这样做:
Binding myBinding = new Binding("DataContext");
myBinding.Source = this;
BindingOperations.SetBinding(FlashControl, FrameworkElement.DataContextProperty, myBinding);