2010-03-25 131 views
0

我已經使用張貼在奇妙例如:一個WPF數據網格綁定到數據表

http://www.codeproject.com/KB/WPF/WPFDataGridExamples.aspx

到WPF DataGrid綁定到一個數據表。

下面的源代碼編譯細;它甚至運行並在WPF數據網格中顯示InfoWork數據表的內容。萬歲!但帶有datagrid的WPF頁面不會顯示在設計器中。我在我的設計頁面上看到了一個難以理解的錯誤,而這個錯誤在本文末尾顯示。我假設設計師在實例化數據視圖以便在網格中顯示時遇到了一些困難。我該如何解決這個問題?

XAML代碼:

xmlns:local="clr-namespace:InfoSeeker" 

<Window.Resources> 
    <ObjectDataProvider 
     x:Key="InfoWorkData" 
     ObjectType="{x:Type local:InfoWorkData}" /> 
    <ObjectDataProvider 
     x:Key="InfoWork" 
     ObjectInstance="{StaticResource InfoWorkData}" 
     MethodName="GetInfoWork" /> 
</Window.Resources> 


<my:DataGrid 
    DataContext="{Binding Source={StaticResource InfoWork}}" 
    AutoGenerateColumns="True" 
    ItemsSource="{Binding}" 
    Name="dataGrid1" 
    xmlns:my="http://schemas.microsoft.com/wpf/2008/toolkit" /> 

C#代碼:代替設計師頁面的顯示

namespace InfoSeeker 
{ 
    public class InfoWorkData 
    { 
     private InfoTableAdapters.InfoWorkTableAdapter infoAdapter; 
     private Info infoDS; 

     public InfoWorkData() 
     { 
      infoDS = new Info(); 
      infoAdapter = new InfoTableAdapters.InfoWorkTableAdapter(); 
      infoAdapter.Fill(infoDS.InfoWork); 
     } 
     public DataView GetInfoWork() 
     { 
      return infoDS.InfoWork.DefaultView; 
     } 
    } 
} 

錯誤上它具有電網:

發生未處理的異常:

類型「MS.Internal.Permission s.UserInitiatedNavigationPermission」在 大會 'PresentationFramework,版本= 3.0.0.0,文化=中立, 公鑰= 31bf3856ad364e35' 未標記爲可序列。在 System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType 型)在 System.Runtime.Serialization.FormatterServices.GetSerializableMembers(類型 型,的StreamingContext上下文)在 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo () 在 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(對象 OBJ,ISurrogateSelector surrogateSelector,的StreamingContext上下文, serObjectInfoInit serObjectInfoInit,IFormatterConverter來轉換器, objectWriter objectWriter) ......在:Ms.Internal。 Designer.DesignerPane.LoadDesignerView()

編輯:修復我的Visual Studio。至少它給了我一個更好的錯誤消息:

請求類型的 「System.Data.OleDb.OleDBPermission,system.Data許可,版本= 2.0.0.0, 文化=中立,公鑰= b77a5c561934e089 '失敗。

回答

2

我開發的項目是(公司)網絡驅動器上。如果我將項目移動到本地C:驅動器,錯誤消失。