【发布时间】:2013-11-04 15:09:59
【问题描述】:
将用 VS2012 编写的针对 .NET 4.5 的项目升级到 VS2013 .NET 4.5.1 后,绑定到我的复选框会引发无效操作异常:TwoWay 或 OneWayToSource 绑定无法在只读属性上工作 em>
<CheckBox IsHitTestVisible="False" Focusable="False" Content="Invert TXD" IsChecked="{Binding EepromDataModel.InvertTxd}"/>
添加正确的模式(OneWay)后,它运行良好。
默认绑定模式是改变了还是比以前更严格了?
不要误会我的意思。我之前应该添加那个绑定模式,但我只是想知道......
编辑
属性没有改变。它总是有一个私人二传手。我只做了升级,仅此而已。 我刚刚用 VS2012 的代码再次检查了四次,它运行良好,没有抛出任何异常。
【问题讨论】:
-
据我所知。您确定您没有将视图模型上的字段更改为私有集吗?
-
它之前确实有一个私人二传手。
-
在我看来像是一个错误修复,尽管它可能破坏了您的代码。 CheckBox 是可编辑的 UI 元素(如 TextBox),而不是最终用户不可编辑的只读 UI 元素(如 TextBLOCK),双向绑定是最有意义的默认选项。
-
确实更有意义。就像我说的,我应该在之前添加 OneWay 绑定模式(一定忽略了这一点),但我只是想知道是否发生了一些变化。
-
我也遇到了同样的问题,尤其是 DevExpress WPF 控件
标签: wpf xaml binding visual-studio-2013