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

时间:2015-09-12 22:02:55

标签: wpf mahapps.metro

我有一个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>

1 个答案:

答案 0 :(得分:1)

我正在使用附加属性在我的窗口加载时调用视图模型中的方法

 helper:MvvmBehaviors.LoadedMethodName="OnWindowLoaded"

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

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