值不能为空。参数名称:hostNameOrAddress

Value cannot be null. Parameter name: hostNameOrAddress

我有一个 WPF 应用程序,但突然收到错误

Value cannot be null. Parameter name: hostNameOrAddress

由于此错误,程序仍将 运行。当我从 window 中删除数据上下文时,此错误消失。在此 window 中,我的数据上下文是我的 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>

当我的 window 被加载时,我正在使用附加的 属性 在我的视图模型中调用一个方法

 helper:MvvmBehaviors.LoadedMethodName="OnWindowLoaded"

我当时没有意识到这一点,但问题是我从方法中调用了一个服务,它破坏了设计器。为了解决这个问题,我在 OnWindowLoaded 方法中插入了一个保护子句来解决这个问题。

if (DesignerProperties.GetIsInDesignMode(new System.Windows.DependencyObject())) return;