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、バージョン = 3.0.0.0、カルチャ = ニュートラル、PublicKeyToken = 31bf3856ad364e35' のタイプ 'MS.Internal.Permissions.UserInitiatedNavigationPermission' は、シリアル化可能としてマークされていません。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) ...At: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 に答える