以下に投稿されたすばらしい例を使用しました。
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' のアクセス許可の要求が失敗しました。