【发布时间】:2015-02-15 10:35:13
【问题描述】:
我有使用 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}"
/>
【问题讨论】:
-
我在该代码中没有看到名为
StartMinutes的属性,只有Value。不匹配会导致问题。 -
不,我用应用程序的 MVVM 中声明的 StartMinutes 值更新了问题。
-
您的用户控件上没有
ValueDP?这甚至可以编译吗?如果您有一个,则支持属性可能会与发布的属性发生冲突。 -
我不使用 DP,我试过了,但是值没有改变。我应该如何使用它?
标签: c# mvvm binding windows-phone-8.1 inotifypropertychanged