如何解决如何强制WPF绑定刷新?
| 我有一个使用简单绑定附加项目源的组合框。加载组合框后,是否有任何方法可以刷新此绑定?解决方法
您可以使用绑定表达式:
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美分,如果您想使用控件的新值更新数据源,则需要调用call4ѭ而不是UpdateTarget()
:
((TextBox)sender).GetBindingExpression(ComboBox.TextProperty).UpdateSource();
,MultiBinding友好版本...
private void ComboBox_Loaded(object sender,RoutedEventArgs e)
{
BindingOperations.GetBindingExpressionBase((ComboBox)sender,ComboBox.ItemsSourceProperty).UpdateTarget();
}
,尝试使用BindingExpression.UpdateTarget()
,我从后端获取数据,并仅用一行代码更新了屏幕。有效。不确定,为什么我们需要实现接口。 (Windows 10,UWP)
private void populateInCurrentScreen()
{
(this.FindName(\"Dets\") as Grid).Visibility = Visibility.Visible;
this.Bindings.Update();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。