绑定到自定义 MVVM 控件
本文关键字:控件 MVVM 自定义 绑定 | 更新日期: 2023-09-27 18:34:22
我有使用 MVVM 的自定义用户控件:INotifyPropertyChanged.我的应用程序还使用 MVVM 和 INotifyPropertyChanged,但是当我尝试将值绑定到自定义用户控件时,应用程序失败了。
"异常无法分配给属性'%0'。"
我需要使用双向绑定。谢谢你的帮助。
自定义用户控件
private double _value = 0;
public double Value
{
get
{
return _value;
}
set
{
_value = value;
RaisePropertyChanged("Value");
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
绑定到元素:
private double _startMinutes;
public double StartMinutes
{
get
{
return _startMinutes;
}
set
{
_startMinutes = value;
RaisePropertyChanged("StartMinutes");
}
}
<controls:RadialSlider
Value="{Binding StartMinutes}"
/>
不能只绑定到普通属性。
绑定是通过DependencyProperty
完成的。最快的方法是通过propdp
片段。它们看起来像:
public double Value
{
get { return (double)GetValue(ValueProperty); }
set { SetValue(ValueProperty, value); }
}
// Using a DependencyProperty as the backing store for Value. This enables animation, styling, binding, etc...
public static readonly DependencyProperty ValueProperty =
DependencyProperty.Register("Value", typeof(double), typeof(RadialSlider), new PropertyMetadata(0));
现在,绑定将按预期工作。请参阅 MSDN 了解更多信息