【问题标题】:wpf binding not working after source initializes源初始化后wpf绑定不起作用
【发布时间】:2023-03-08 17:14:02
【问题描述】:

我正在尝试从代码创建绑定。 MSDN 给出了这个例子:

MyData myDataObject = new MyData(DateTime.Now);      
Binding myBinding = new Binding("MyDataProperty");  
myBinding.Source = myDataObject;    
myText.SetBinding(TextBlock.TextProperty, myBinding);

这样可以正常工作,我应该使用INotifyPropertyChanged。我的问题是,在设置绑定之后,如果我这样做:

MyData myDataObject = new MyData(DateTime.Now);

然后绑定将无法与我的新对象一起使用。可见值将不再更新。我想我应该以不同的动态方式添加绑定源。

【问题讨论】:

  • 我相信你应该向我们展示 MyData 类是如何编写的。

标签: wpf data-binding binding bind


【解决方案1】:

您正在重新创建数据源,因此您需要在之后直接更新绑定:

MyData myDataObject = new MyData(DateTime.Now);
myBinding.Source = myDataObject;

您可能还需要再次致电SetBinding

【讨论】:

  • 没有办法解决这个问题吗?如果我这样做呢? MyData myDataObject = new MyData(DateTime.Now);绑定 myBinding = new Binding("myDataObject.MyDataProperty"); myText.SetBinding(TextBlock.TextProperty, myBinding);
  • @Wtf1sh - 没有。您正在更改数据源。装订在旧的。您需要在新的上重新创建它。
【解决方案2】:

绑定不关心源,它必须(非常)稳定。您可以更改的是由 PropertyPath 和/或 Binding 构造函数参数指定的实例路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-27
    • 2011-03-30
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多