我有一個包含兩個表的數據集,這對於很多父子關係來說是簡單的。例如;如何在wpf數據網格中顯示來自數據集的相關數據
Parent Table
ParentId (int)
Name (string)
Child Table
ChildId (int)
ParentId (int)
Name (string)
在此數據集我已經得到了家長和孩子的父母id字段之間建立的關係(ParentChildRelation)。如果我以編程方式執行Parent.getChildRows()調用,則會看到正確的相關子記錄,因此我知道這種關係很好。
我需要顯示具有父行的列表的數據網格,並具有另一個單獨的datagrid,顯示所選父級的子記錄列表。
到目前爲止,我在代碼窗口後面我有
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"] ;
}
}
我還設置爲窗口,以自身的窗口構造例如在DataContext上;
this.DataContext = this;
,並在我的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>
但是我不能讓任何一個孩子記錄dataGrid2露面。
我綁定這個網格到datarelation名稱是否正確?
如果我綁定到我的窗口上的另一個屬性;
public DataView ChildrenView
{
get
{
return this.ParentChildDataSet.Tables["Child"].DefaultView;
}
}
然後我看到所有的記錄,不管父母爲你所期望的。
感謝任何人都可以給我的指針。
而這只是爲什麼這個投票下來? – Paparazzi 2012-04-12 18:39:03
不知道爲什麼它是downvoted或由誰,謝謝你的信息,但沒有辦法通過xaml直接綁定到子視圖,而不是調用CreateChildView方法? – 2012-04-13 08:09:08
我看到一個問號。有問題嗎?它有用嗎? – Paparazzi 2012-04-13 12:04:57