数据绑定WPF属性到变量

问题描述 投票:0回答:1

我有一个WPF 4和VB.net 2010的项目。我想把一个mediaelement的volume属性绑定到另一个模块中的一个变量。提醒您,该变量是正确的数据类型,所以不需要转换。我该怎么做呢?

wpf vb.net data-binding variables mediaelement
1个回答
2
投票

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

所有这些都是通知UI,Volume的值发生了变化,它需要在绑定上抓取新的值。

第二件事是你需要以某种方式从后面的代码中访问其他模块的变量,然后在后面的代码中使用Property引用。

现在的技巧是,当你设置属性的时候,你要同时调用notify property changed事件。

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

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

我不记得后面的代码类是否会自动将自己设置为User Control的DataContext,所以你可能要在你的构造函数中加入一个 "this.DataContext = this "或VB.NET等价物。通常DataContext是自动从你的ViewModel中拉进来的。基本上,这说的是使用指定的类(也就是后面的代码)作为所有数据绑定的来源。

那么在XAML中就是一个普通的数据绑定。

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

说句题外话,这确实不是人们通常设置WPF应用程序的方式,所以这种情况有点奇怪。如果你打算对WPF做很多事情,你可能会想看看Josh Smith关于MVVM的资源--这才是WPF应用程序的真正目的架构。

祝您好运!

© www.soinside.com 2019 - 2024. All rights reserved.