0

我使用了发布在以下位置的奇妙示例:

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

将 WPF 数据网格绑定到数据表。

下面的源代码编译得很好;它甚至在 WPF 数据网格中运行并显示 InfoWork 数据表的内容。万岁!但是带有数据网格的 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;
        }
    }
}

错误显示在带有网格的设计器页面的位置:

发生了未处理的异常:

在程序集“PresentationFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”中键入“MS.Internal.Permissions.UserInitiatedNavigationPermission”未标记为可序列化。在 System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type) 在 System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context) 在 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, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089”类型的权限失败。

4

1 回答 1

2

我正在开发的项目是在(公司)网络驱动器上。如果我将项目移动到我的本地 C: 驱动器,错误就会消失。

于 2010-03-25T17:59:23.923 回答