Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 升级.NET版本后,双向或单向ToSource绑定无法在只读属性上工作_C#_.net_Wpf_Frameworks_Visual Studio 2017 - Fatal编程技术网

C# 升级.NET版本后,双向或单向ToSource绑定无法在只读属性上工作

C# 升级.NET版本后,双向或单向ToSource绑定无法在只读属性上工作,c#,.net,wpf,frameworks,visual-studio-2017,C#,.net,Wpf,Frameworks,Visual Studio 2017,我有一个WPF应用程序,目标框架版本为4.5。现在我已经切换到版本4.6.2 在那之后,我在多个地方得到以下错误 A TwoWay or OneWayToSource binding cannot work on the read-only property 我正在使用Visual Studio 2017 将项目称为A,它将B、C、D作为依赖项。当B、C和D作为DLL附加时,我得到了错误信息。如果它们作为项目附加在上我不会得到错误信息 注意:所有B、C、D都是4.5版本的项目,我不会为了运行

我有一个WPF应用程序,目标框架版本为
4.5
。现在我已经切换到版本
4.6.2

在那之后,我在多个地方得到以下错误

A TwoWay or OneWayToSource binding cannot work on the read-only property 
我正在使用
Visual Studio 2017

将项目称为
A
,它将
B、C、D作为依赖项
。当B、C和D作为DLL附加时,我得到了错误信息。如果它们作为项目附加在
我不会得到错误信息

注意:所有B、C、D都是4.5版本的项目,我不会为了运行此项目而将它们更改为4.6.2

有没有人能告诉我如何在这里继续前进,以及在接近的过程中是否有任何错误

更新1:

相关问题与我的情况不同:

更新2:

下面的问题是类似的

但答案中提供的链接似乎已断开或重定向:


我知道已经晚了一年,但如果有人遇到这个问题,这是众所周知的问题。框架升级后,我的UI部分开始抛出InvalidOperationException。修复很简单,只需将显式Mode=OneWay添加到绑定中。但我仍然需要知道,如果在相当长的一段时间内没有人对代码进行任何更改,那么它为什么会启动

我在这里找到了解决方案:

尝试在没有公共setter的情况下将数据绑定到属性从来都不受支持。从.NET Framework 4.5.1开始,此场景将引发InvalidOperationException。请注意,只有专门针对.NET Framework 4.5.1的应用程序才会引发此新异常。如果某个应用以.NET Framework 4.5为目标,则该调用将被允许。如果应用程序不针对特定的.NET Framework版本,则绑定将被视为单向绑定


问题始终存在,只是在发生时才开始抛出异常。

是否有任何特定控件抛出错误?这是一个应用程序,我不确定它是否与应用程序中使用的任何特定控件相关,我可以在多个位置找到问题。您是否修改了任何现有的ViewModels?i、 您是否从viewmodels中删除了属性设置器?我没有代码更改,项目在4.5中运行良好。我刚刚更改了框架版本,但出现了错误。在跟踪您发布的链接后,我发现.Net 4.5中存在一个错误,当您使用双向绑定属性时,该错误不会引发错误。使用私有setter。这是在.NET4.7中修复的。我认为除了将私有setter公开外,没有其他简单的解决方法。今天我遇到了完全相同的问题,我将目标从4.5更新为4.7.2,但是只有在正常运行可执行文件时才会引发异常。如果我在运行它时附带了调试器,则不会抛出任何内容,应用程序也会正常运行…想象一下,在编译发行版时,从VS运行,一切正常,然后部署到客户和bam,我会收到错误报告。。。