【发布时间】:2016-12-28 21:56:48
【问题描述】:
我正在尝试学习如何使用 WPF 数据绑定。
我有一个控件,我想更改控件中某个属性的值。
<somecontrol Value="{Binding GoodRange}">
我在 MainWindow 类中创建了如下属性:
Public Property GoodRange As Double
Get
Return m_GoodRange
End Get
Set(value As Double)
m_GoodRange = value
End Set
End Property
Private m_GoodRange As Double
在 Mainwindow 类中,我在子 New() 中添加了以下内容
Public Sub New()
InitializeComponent()
GoodRange = 3000
Me.DataContext = Me
End Sub
到目前为止一切顺利,当我启动程序时,值 3000 被传递给控件。
现在,在运行时我想更改属性,例如当用户单击按钮或定时事件时,例如:
Private Sub UpdateValue()
GoodRange = 2800
End Sub
当我这样做时,控件上的值不会更新。我试图了解如何触发控件进行更新。
我已经用 google 搜索了 4 个小时,尝试理解,我在 google 上找到并尝试了很多答案,但通常这些答案是针对自定义控件或自定义类或使用我无法用作多个的 .datacontex 方法属性将需要更改。
如果你们能提供任何帮助,我将不胜感激。
谢谢/
【问题讨论】:
-
您必须实现属性更改通知。这通常通过实现 INotifyPropertyChanged 接口来完成。但是请注意,在视图类(如您的 MainWindow)中实现这一点并不常见。您通常创建一个单独的类来实现它并定义绑定的源属性。然后将该类的一个实例分配给视图的 DataContext。这就是所谓的视图模型。在网上搜索 MVVM。
标签: wpf vb.net data-binding