Ich habe ein Dataset mit zwei Tabellen, eine einfache zu viele Eltern Kind Beziehung geht. z.B;So zeigen Sie verwandte Daten aus Dataset in wpf datagrid
Parent Table
ParentId (int)
Name (string)
Child Table
ChildId (int)
ParentId (int)
Name (string)
In diesem Datensatz ich eine Beziehung haben (ParentChildRelation) zwischen dem Elternteil und Kind auf der übergeordneten ID-Feld aufgebaut. Und wenn ich programmatisch einen Aufruf von Parent.getChildRows() mache, sehe ich die korrekten zugehörigen untergeordneten Datensätze, also weiß ich, dass die Beziehung gut ist.
Ich muss ein Datagrid mit einer Liste der übergeordneten Zeilen anzeigen und ein anderes separates Datagrid anzeigen die Liste der unterordneten Datensätze für das ausgewählte Eltern anzeigen.
Bisher auf meinem Fenster in Code hinter ich habe
private DataSet _parentChildDataSet;
public DataSet ParentChildDataSet
{
get
{
return _parentChildDataSet;
}
set
{
_parentChildDataSet = value;
}
public DataView ParentView
{
get
{
return this.ParentChildDataSet.Tables["Parent"].DefaultView;
}
}
public DataRelation ParentChildRelation
{
get
{
return this.ParentChildDataSet.Relations["Parent_Child"] ;
}
}
ich auch die Datacontext für das Fenster sich in dem Windows-Konstruktor zB festgelegt;
this.DataContext = this;
und in meiner XAML
<Grid>
<DataGrid ItemsSource="{Binding Path=ParentView}" AutoGenerateColumns="True" Name="dataGrid1">
</DataGrid>
<DataGrid ItemsSource="{Binding Path=ParentChildRelation}" Name="dataGrid2" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=Name}" Header="Name" />
</DataGrid.Columns>
</DataGrid>
</Grid>
Jedoch habe ich keine untergeordneten Datensätze erhalten können in DataGrid2 zu zeigen.
Ich verbinde dieses Gitter mit dem Datenrelationsnamen ist das korrekt?
wenn ich an eine andere Eigenschaft auf meinem Fenster binde;
public DataView ChildrenView
{
get
{
return this.ParentChildDataSet.Tables["Child"].DefaultView;
}
}
dann sehe ich alle Datensätze unabhängig von der übergeordneten wie Sie erwarten würden.
Danke für alle Hinweise, die mir jemand geben kann.
Und warum genau wurde das abgelehnt? – Paparazzi
Ich bin mir nicht sicher, warum es downvooted wurde oder von wem, danke für die Informationen, aber gibt es keine Möglichkeit, direkt über xaml an die untergeordnete Ansicht zu binden, anstatt die CreateChildView-Methode aufzurufen? –
Ich sehe ein Fragezeichen. Gibt es eine Frage? Hat es funktioniert? – Paparazzi