数据绑定WPF属性到变量

时间:2011-04-04 01:42:24

标签: wpf vb.net data-binding variables mediaelement

我在WPF 4和VB.net 2010中有一个项目。我想将mediaelement的volume属性绑定到另一个模块中的变量。请注意,变量的数据类型正确,因此无需转换。我该怎么做呢?

1 个答案:

答案 0 :(得分:2)

首先,确保你的代码实现了INotifyPropertyChanged。

此处示例:http://www.codekeep.net/snippets/4c7ed2e5-7e3b-40b4-b976-d54b54d9bf5b.aspx

所有这一切都是一种通知UI卷的值已经改变并且需要在绑定上获取新值的方法。

第二件事是你需要以某种方式从代码中的其他模块访问变量,然后使用Property在代码中引用它。这里的属性示例,如果您不熟悉:

http://www.xtremevbtalk.com/showthread.php?p=688701

现在的诀窍是,当您设置属性时,您还需要调用notify属性更改事件。

Public Property Volume()
   Get
     Volume() = YourModuleVolume
   End Get

   Set(ByVal Value)
     YourModuleVolume = Value
             'Call NotifyPropertyChanged("Volume") here
   End Set
End Property

我不记得类后面的代码是否自动将其自身设置为用户控件的DataContext,因此您可能希望在构造函数中放入“this.DataContext = this”或VB.NET等效项。通常,DataContext是从ViewModel自动提取的。基本上,这就是说使用指定的类(也就是后面的代码)作为所有数据绑定的源。

然后在XAML中,这是一个通常的数据绑定。

<YourControl Volume="{Binding Volume}" />

作为旁注,这通常不是人们通常如何设置WPF应用程序,所以这种情况有点奇怪。如果你打算在WPF上做很多事情,你可能想看看Josh Smith在MVVM上的资源 - 这实际上是WPF应用程序的预期架构。

祝你好运!