微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何强制WPF绑定刷新?

如何解决如何强制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 举报,一经查实,本站将立刻删除。