2017-03-04 1 views
1

これはHow to display related data from dataset in wpf datagridのクロスポストであり、ここで提案された回答をうまく適用できませんでした。wpfのマスターディテールデータグリッドをリレーショナルデータセットからレンダリングする方法

私の状況は、関係を共有するデータセットで2つのデータセット(請求書と1つの行に1つの請求書と1つのデータセットがあります)があり、さらにそれらのデータテーブルを表示したい2つのデータグリッドにマスターディテールビューとして表示されます。

私はCreateChildViewメソッドを調べましたが、キーポイントがどこかにありません。 childviewを取得するための私の現在のコード:

public DataView ChildView { 
    get { 
     return ParentChildRelation.ParentTable.DefaultView[0].CreateChildView("orders") 
    } 
} 

問題は、まず、私は明らかに私はいつもparenttableの最初の行のchildviewを得る意味、固定のインデックスを持つ、2倍です。第2に、親ビューで新しい行が選択されたときに、新しい子ビューを取得する際に悲惨に失敗しています(ChildViewは初期化時にのみ呼び出されます)。

私のXAML:

<Grid> 
    <DataGrid 
     ItemsSource="{Binding Path=ParentView}" 
     AutoGenerateColumns="True" 
     Name="dataGrid1" 
    /> 

    <DataGrid 
     ItemsSource="{Binding Path=ChildView}" 
     AutoGenerateColumns="True" 
     Name="dataGrid2" 
    /> 
</Grid> 

私は、このXAMLソリューションを作成し、childviewを更新するEventHandlerを書き込まないようにしたいと思います。私はDataContextを使いこなそうとしましたが、データセットとリレーションでこの構造をどのように活用するかについてのドキュメントは本当にスリムです(私が正しいパスを辿るかどうか疑問に思います)。

詳細ビューがどの親が選択され、どの項目が表示されるべきかを知るためのセマンティクスがありません。

答えて

0

私はかなりの時間DataSetを使用していないが、そのようなマスター詳細シナリオのためにあなたは、あなたが親行になりSelectedItemを取得します

<DataGrid 
     ItemsSource="{Binding SelectedItem, ElementName=ParentDataGrid, Converter={...}}"/> 

を試すことができ、その後、あなたが何かを行うことができますこの行と工事/ ICollectionを取得してから返すそのIValueConverter

+0

これは魅力的でした!私はテーブル関係のための多くのサポートコードをゴミ箱にさせる素晴らしいソリューション! – kbao

関連する問題