2014-01-13 47 views
2

我在設計器中出現這個奇怪的錯誤。
Visual Studio 2013 WPF - 其他視圖/窗口工作正常。 這是發生在我有設計時間數據(如果我刪除設計時間數據,它工作正常)。WPF Visual Studio Designer中的錯誤

System.NullReferenceException對象引用未設置爲對象的實例 。
在 System.Windows.Controls.GridViewHeaderRowPresenter.OnLayoutUpdated(對象 發件人,EventArgs的)
在 System.Windows.ContextLayoutManager.fireLayoutUpdateEvent()
在 System.Windows.ContextLayoutManager.UpdateLayout()
在 System.Windows .UIElement.UpdateLayout()
在 System.Windows.Interop.HwndSource.SetLayoutSize()
在 System.Windows.Interop.HwndSource.set_RootVisualInternal(視覺值)
在System.Windows.Interop.HwndSource.set_RootVisual(視覺值)
at Microsoft.Expression.DesignHost.Isolation.Remoting.RemoteUIElement。 <> c__DisplayClass10.b__f()
at Microsoft.Expression.DesignHost.Isolation.Remoting.ThreadMarshaler。 <> c__DisplayClass2a`1.b__29()
在 Microsoft.Expression.DesignHost.Isolation.Remoting.STAMarshaler.Call.InvokeWorker()
在 Microsoft.Expression.DesignHost.Isolation.Remoting.STAMarshaler.Call.Invoke(布爾 waitingInExternalCall)
在< Microsoft.Expression.DesignHost.Isolation.Remoting.STAMarshaler.InvokeCall(呼叫 調用)
在 Microsoft.Expression.DesignHost.Isolation.Remoting.STAMarshaler.ProcessQueue(CallQueue 隊列)
在 Microsoft.Expression.DesignHost.Isolation.Remoting.STAMarshaler.P rocessInboundAsyncQueue(的Int32 同一性)
在 Microsoft.Expression.DesignHost.Isolation.Remoting.STAMarshaler.ProcessMessage(的Int32 味精,IntPtr的wParam中,IntPtr的lParam的,布爾elevatedQuery,布爾& 處理)
在 Microsoft.Expression.DesignHost。 Isolation.Remoting.STAMarshaler.OnWindowMessage(IntPtr的 HWND,MSG的Int32,IntPtr的wParam中,IntPtr的lParam的,布爾&處理)
在 Microsoft.Expression.DesignHost.Isolation.Remoting.MessageOnlyHwndWrapper.WndProc(IntPtr的 HWND,MSG的Int32,IntPtr的wParam,IntPtr lParam)
at MS.Win32.UnsafeNativeMethod s.DispatchMessage在 System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame 幀)
在 System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame幀)
在System.Windows.Threading程序(MSG & MSG)
。 Dispatcher.Run()
在 System.Windows.Application.RunDispatcher(對象忽略)
在 System.Windows.Application.RunInternal(窗口窗口)
在 System.Windows.Application.Run(窗口窗口)
在 Microsoft.Expression.DesignHost.Isolation.DesignerProcess。RunApplication()
at Microsoft.Expression.DesignHost.Isolation.DesignerProcess。 <> c__DisplayClass2.b__0()
在System.Threading.ThreadHelper.ThreadStart_Context(對象狀態)
在System.Threading.ExecutionContext.RunInternal(的ExecutionContext 的ExecutionContext,ContextCallback回調,對象的狀態,布爾 preserveSyncCtx)
在 系統.Threading.ExecutionContext.Run(的ExecutionContext 的ExecutionContext,ContextCallback回調,對象的狀態,布爾 preserveSyncCtx)
在 System.Threading.ExecutionContext.Run(的ExecutionContext 的ExecutionContext,ContextCallback回調,對象狀態)
在 SYSTE m.Threading.ThreadHelper.ThreadStart()

錯誤 Error

+0

視圖的代碼隱藏功能在設計時無法使用。也許類字段不是通過「默認構造函數」代碼路徑初始化的。使用設計時檢查描述在http://stackoverflow.com/questions/3978264/how-to-check-if-im-in-run-time-or-design-time –

+0

分享你的xaml,看起來像你的罪魁禍首在於它。 –

+0

@ChrisW不是xaml實際上是一個轉換器,沒有檢查爲空,是我加了一個空檢查它工作正常 - – DermFrench

回答

3

這是造成不檢查空一些轉換器的圖片: 我在支票增值== null,並且所有的罰款再次。

public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 

    { 
     if (value == null) { return "White"; } 
     var valueAsString = (string)value; 

     if (String.IsNullOrWhiteSpace(valueAsString)) 
     { 
      return "White"; 
     } 

     if (valueAsString.ToLower().Contains("Late".ToLower())) 
     { 
      return "Yellow"; 
     } 
     return "White";   
    } 

MSDN也有設計時的錯誤這裏一些提示: http://msdn.microsoft.com/query/dev12.query?appId=Dev12IDEF1&l=EN-US&k=k(VS.XamlDesigner.ExceptionUI);k(TargetFrameworkMoniker-.NETFramework,Version%3Dv4.0)&rd=true

值轉換 您的自定義的IValueConverter實現應當檢查空,在轉換方法的第一個參數預期的類型。如果值轉換器沒有正確實現,以下XAML將顯示綁定到Application.Current的設計時失敗。

+0

將修復應用程序,也將解決這一個? – RoCk