привязать сетку данных WPF к таблице данных - PullRequest
0 голосов
/ 25 марта 2010

Я использовал изумительный пример, размещенный по адресу:

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

для привязки сетки данных WPF к таблице данных.

Исходный код ниже компилируется нормально; он даже запускается и отображает содержимое таблицы данных InfoWork в сетке данных WPF. Ура! Но страница 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.Permissions.UserInitiatedNavigationPermission' в Assembly 'PresentationFramework, версия = 3.0.0.0, культура = нейтральная, 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 (Объект 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, Культура = нейтральная, PublicKeyToken = b77a5c561934e089 'не удалось.

1 Ответ

2 голосов
/ 25 марта 2010

Проект, который я разрабатывал, был (корпоративный) сетевой диск. Если я перенесу проект на локальный диск C: ошибка исчезнет.

...