Bindung Datatable an ein datagrid in WPF
Ich habe ein view-Modell-in meinem C# - 4.0-app, die hat ein System.Data.DataTable
dass ist in es mit eine service-Aufruf. Ich möchte zum binden dieses an eine datagrid
in meiner XAML-Datei.
Habe ich versucht folgende Zeile DataGrid_Loaded Ereignis, sondern seine gefeuert bis vor meine datatable angelegt wird, innerhalb des view-Modell.
xaml:
<dg:DataGrid Name="myDataGrid" Loaded="DataGrid_Loaded"/>
xaml.cs:
myDataGrid.ItemsSource = myViewModel.myDataTable.DefaultView;
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie den folgenden Vorschlag: In deinem code hinter Sie stellen müssen, um raster
DataContext
zu IhremDataTable
:In der XAML-Sie müssen angeben, dass die
ItemsSource
angewiesen Bindung:Folgen dieser link für mehr details. Auch finden Sie ein umfassendes Beispiel mit Erklärungen auf CodeProject.
EDIT:
Anderer Ansatz wäre, halten Sie Ihre Tabelle als eine Eigenschaft. In Ihrem Fenster, um das Fenster data-Kontext zu der Ansicht, Modell und legen Sie dann die Bindung an das Eigentum in der Ansicht Modell:
View-Modell:
In Ihrem Fenster (eine, die zeigt die Daten-grid:
Diese Weise Ihre Bindung im XAML-Hauptfenster wird wissen, wo zu suchen die Daten - in
myViewModel
.In XAML, die Sie nicht brauchen einen Namen für Ihr Netz mit diesem Ansatz. Aber die Bindung angeben, den Namen der Datenquelle:
DataGrid
im xaml (zusammen mit übergeordneten container), Ihrer Ansicht Modell, erstellen Sie eine Daten-Tabelle und der Daten-Tabelle Eigenschaft, Ihre Ansicht (das, was du beschrieben hast, wie xaml.cs), wo Sie eineDataContext
.