UserControl的DataContext更新WPF

时间:2014-07-03 03:51:53

标签: wpf user-controls wpf-controls

我在主窗口中有自己的名为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更改时不会自动更新?怎么做自动更新?我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

如果您想要自动更新,请不要直接设置DataContext,而是将其绑定到您想要的值。 你应该在xaml中绑定,但如果你想在代码中做,那么你可以这样做:

Binding myBinding = new Binding("DataContext");
myBinding.Source = this;
BindingOperations.SetBinding(FlashControl, FrameworkElement.DataContextProperty, myBinding);