Я использовал чудесный пример размещен по адресу:связать DataGrid WPF с DataTable
http://www.codeproject.com/KB/WPF/WPFDataGridExamples.aspx
связать DataGrid WPF с DataTable.
Исходный код ниже компилируется штрафом; он даже запускается и отображает содержимое DataWork datatable в WPat datagrid. Ура! Но страница WPF с datagrid не будет отображаться в дизайнере. Я получаю непонятную ошибку вместо этого на моей странице дизайна, которая показана в конце этой публикации. Я предполагаю, что у дизайнера возникли трудности с созданием экземпляра dataview для отображения в сетке. Как я могу это исправить?
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 'в Assembly' PresentationFramework, Version = 3.0.0.0, Culture = нейтральный, PublicKeyToken = 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 (Object OBJ, ISurrogateSelector surrogateSelector, StreamingContext контекст, SerObjectInfoInit serObjectInfoInit, IFormatterConverter конвертер, objectWriter objectWriter) ... в: Ms.Internal. Designer.DesignerPane.LoadDesignerView()
Редактировать: Отредактировано мое Visual Studio. По крайней мере, это дает мне лучшее сообщение об ошибке:
Запрос разрешения типа «System.Data.OleDb.OleDBPermission, system.Data, Version = 2.0.0.0, Culture = нейтрален, PublicKeyToken = b77a5c561934e089 ' не смогли.