首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InvalidOperationException - TwoWay或OneWayToSource绑定不能在只读属性上工作

InvalidOperationException - TwoWay或OneWayToSource绑定不能在只读属性上工作
EN

Stack Overflow用户
提问于 2012-01-08 05:11:08
回答 4查看 15K关注 0票数 16

我正在使用MVVM模式,并且在运行我的应用程序时收到以下内容

InvalidOperationException TwoWay或OneWayToSource绑定不能在类型为“ViewModel.SynergyViewModel”的只读属性“Options”上工作。

我已经在视图模型中注释掉了所有源代码,并将其追溯到一个复选框。如果我注释掉视图模型中的复选框或属性,则应用程序运行时会减去功能。下面我列出了我的复选框和视图模型中的属性的代码。

代码语言:javascript
复制
<CheckBox Grid.Column="4" HorizontalAlignment="Right" Margin="5,0,5,5" IsChecked="{Binding Options}" Content="Options"/>
代码语言:javascript
复制
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:

你知道我是什么吗?我错过了什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-08 05:19:01

要么将您的setter设置为公共,要么显式地将Binding.Mode设置为OneWay

票数 22
EN

Stack Overflow用户

发布于 2012-01-08 05:19:22

您的设置器是私有的,请将绑定指定为模式OneWay或从设置器中删除私有

票数 2
EN

Stack Overflow用户

发布于 2020-08-11 18:40:27

在我这个愚蠢至极的例子中,我忘记了定义一个属性的setter,使其成为只读的。对于那些工作太晚的人,这只是我的2美分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8773150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档