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

时间:2010-03-25 15:39:01

标签: wpf datagrid datatable tableadapter

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

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

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

下面的源代码编译得很好;它甚至运行并在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.Permissions.UserInitiatedNavigationPermission'   Assembly'PresentationFramework,Version = 3.0.0.0,Culture = neutral,   PublicKeyToken = 31bf3856ad364e35'未标记为可序列化。在   System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType   输入)   System.Runtime.Serialization.FormatterServices.GetSerializableMembers(类型   type,StreamingContext context)at   System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()   在   System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(对象   obj,ISurrogateSelector surrogateSelector,StreamingContext context,   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'失败。

1 个答案:

答案 0 :(得分:2)

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