如何强制WPF绑定刷新?

我有一个combobox与项目源使用简单的绑定附加。 一旦加载combobox,有什么办法刷新这个绑定?

你可以使用绑定expression式:

private void ComboBox_Loaded(object sender, RoutedEventArgs e) { ((ComboBox)sender).GetBindingExpression(ComboBox.ItemsSourceProperty) .UpdateTarget(); } 

但是, 正如Blindmeis指出的,你也可以触发更改通知,如果你的集合实现INotifyCollectionChanged (例如在ObservableCollection<T> ),它将同步,所以你不需要做任何这样的事情。

如果你使用mvvm而你的itemssource位于你的vm中。 当您想要刷新时只需要调用INotifyPropertyChanged为您的集合属性。

 OnPropertyChanged("YourCollectionProperty"); 

要添加我的2美分,如果要用Control的新值更新数据源,则需要调用UpdateSource()而不是UpdateTarget()

 ((TextBox)sender).GetBindingExpression(ComboBox.TextProperty).UpdateSource(); 

尝试使用BindingExpression.UpdateTarget()

MultiBinding友好版本…

 private void ComboBox_Loaded(object sender, RoutedEventArgs e) { BindingOperations.GetBindingExpressionBase((ComboBox)sender, ComboBox.ItemsSourceProperty).UpdateTarget(); } 

我从后端获取数据,并用一行代码更新了屏幕。 有效。 不知道,为什么我们需要实现接口。 (Windows 10,UWP)

  private void populateInCurrentScreen() { (this.FindName("Dets") as Grid).Visibility = Visibility.Visible; this.Bindings.Update(); }