我有一个WPF应用程序,突然收到错误
值不能为空。参数名称:hostNameOrAddress
出现此错误,程序仍将运行。当我从窗口中删除datacontext时,此错误消失了。在这个窗口中,我的datacontext是我的MainViewModel。我尝试从程序集中删除MainViewModel并将其添加回去,以为可以解决问题但无济于事。有没有人对为什么会发生这种情况有任何想法。注意:我使用的是MahApps.Metro。
<controls:MetroWindow x:Class="DatalogConversion.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:DatalogConversion"
xmlns:controls="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:helper="clr-namespace:DatalogConversion.Helper"
Height="auto"
Width="325"
SizeToContent="Height">
<controls:MetroWindow.DataContext>
<local:MainViewModel/>
</controls:MetroWindow.DataContext>
答案 0 :(得分:1)
我正在使用附加属性在我的窗口加载时调用视图模型中的方法
helper:MvvmBehaviors.LoadedMethodName="OnWindowLoaded"
我当时没有意识到这一点,但问题是我从方法中调用了一个服务而且它打破了设计师。为了解决这个问题,我在OnWindowLoaded方法中插入了一个guard子句来解决问题。
if (DesignerProperties.GetIsInDesignMode(new System.Windows.DependencyObject())) return;