我正在使用MVVM模式,并且在运行我的应用程序时收到以下内容
InvalidOperationException TwoWay或OneWayToSource绑定不能在类型为“ViewModel.SynergyViewModel”的只读属性“Options”上工作。
我已经在视图模型中注释掉了所有源代码,并将其追溯到一个复选框。如果我注释掉视图模型中的复选框或属性,则应用程序运行时会减去功能。下面我列出了我的复选框和视图模型中的属性的代码。
<CheckBox Grid.Column="4" HorizontalAlignment="Right" Margin="5,0,5,5" IsChecked="{Binding Options}" Content="Options"/>private bool _Options;
public bool Options
{
get
{
return _Options;
}
private set
{
if (_Options == value)
return;
_Options = value;
OnPropertyChanged("Options");
}
}System.InvalidOperationException发生Message=A TwoWay或OneWayToSource绑定不能在类型为'ViewModel.MyViewModel‘的只读属性'Options’上工作。对象信息: at MS.Internal.Data.PropertyPathWorker.CheckReadOnly(Object StackTrace,Source=PresentationFramework StackTrace) InnerException:
你知道我是什么吗?我错过了什么?
发布于 2012-01-08 05:19:01
要么将您的setter设置为公共,要么显式地将Binding.Mode设置为OneWay。
发布于 2012-01-08 05:19:22
您的设置器是私有的,请将绑定指定为模式OneWay或从设置器中删除私有
发布于 2020-08-11 18:40:27
在我这个愚蠢至极的例子中,我忘记了定义一个属性的setter,使其成为只读的。对于那些工作太晚的人,这只是我的2美分。
https://stackoverflow.com/questions/8773150
复制相似问题