我在Visual Studio 2012上使用WPF和.NET 4.5.2,并在编辑我的视图时在XAML视图中获取FileNotFoundException:
应用程序编译并运行正常。该例外仅显示为蓝色下划线。
我调试了XDesProc.exe,发现这是异常的来源。原因是它的工作目录是C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE
所以它在错误的地方寻找配置。
我发现这可能是应用程序中的设计问题。在此行的MainWindowViewModel.cs中抛出异常:
RemotingConfiguration.Configure("ZZZZZ.exe.config", false);
我相信当XAML UI Designer到达我的View.xaml的这一部分时,就会遇到这条线:
<Window.DataContext>
<vm:MainWindowViewModel/>
</Window.DataContext>
我正在实例化我的ViewModel并将其分配给DataContext。
我想我需要将RemotingConfiguration.Configure()
移到我的ViewModel构造函数之外但我不知道放在哪里。我相信这是我问题的解决方案。
提前致谢!
答案 0 :(得分:1)
在设计模式中,实例化xaml中指定的控件和实例。在您的VM(或其他区域)中,可能存在在设计模式期间不应尝试的代码。
最好通过指定是否在设计模式下尝试来分离这些部分,例如
if (!DesignerProperties.GetIsInDesignMode(this)) { ... } // if not in design mode.
由于VM是问题,以下是选项。
Name
属性,在Xaml中命名VM。 INotifyPropertyChanged
的VM上创建一个布尔值(不必遵守IsInDesign
。)IsInDesign
到指定的VM。IsInDesign
的值,并根据文件的值停止任何文件的加载/读取。