2010-03-25 4 views
0

Je l'ai utilisé l'exemple merveilleux affiché à:lier un DataGrid WPF à un datatable

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

pour lier un DataGrid WPF à un DataTable.

Le code source ci-dessous compile bien; il exécute même et affiche le contenu de la base de données InfoWork dans la grille de données WPF. Hourra! Mais la page WPF avec la grille de données ne s'affichera pas dans le concepteur. Je reçois une erreur incompréhensible sur ma page de conception qui s'affiche à la fin de cet article. Je suppose que le concepteur a de la difficulté à instancier la vue de données pour l'afficher dans la grille. Comment puis-je résoudre ce problème?

code 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# Code:

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; 
     } 
    } 
} 

erreur apparaît à la place de la page concepteur qui a la grille là-dessus:

Une exception non gérée est produite:

Type 'MS.Interne.Permission s.UserInitiatedNavigationPermission 'dans Assembly' PresentationFramework, Version = 3.0.0.0, Culture = Neutre, PublicKeyToken = 31bf3856ad364e35 'n'est pas marqué comme sérialisable. à System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers (type RuntimeType ) à System.Runtime.Serialization.FormatterServices.GetSerializableMembers (type de type , contexte StreamingContext) à System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() à System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize (Object obj , ISurrogateSelector surrogateSelector, le contexte StreamingContext, serObjectInfoInit serObjectInfoInit, convertisseur IFormatterConverter, ObjectWriter objectWriter) ... A: Ms.Internal. Designer.DesignerPane.LoadDesignerView()

edit: Réparé mon Visual Studio. Au moins, il me donne un meilleur message d'erreur:

Demande d'autorisation de type « System.Data.OleDb.OleDBPermission, system.Data, Version = 2.0.0.0, Culture = neutral , PublicKeyToken = b77a5c561934e089 ' échoué.

Répondre

2

Le projet que je développais était sur un lecteur réseau (d'entreprise). Si je déplace le projet vers mon lecteur C: local, l'erreur disparaît.

Questions connexes