私はWPFには新しく、解決できない問題があります。 T1とT2の2つのテーブルを持つデータセットがあります。TreeViewとDataGridへのバインド
ds.Relations.Add("RecursiveRel",
tables["T1"].Columns["T1Id"],
tables["T1"].Columns["ParentId"]);
私はDataViewのにそれを結合することによって、ツリービューでこのテーブルを表示しています:T1は、この
T1Id
ParentIdは
名前
この関係のような再帰的な構造を有している
DvT1 = ds.Tables[0].DefaultView;
DvT1.RowFilter = string.Format("Id = '{0}'", IdOfFirstRecord);
XAML:
<TreeView ItemsSource="{Binding DvT1}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding RecursiveRel}">
<TextBlock Text="{Binding Name}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
これはうまく動作し、階層をツリービューにうまく表示します。 1あり
T2Id T1Id 名
:
および今テーブルT2は、このような構造を有している場に出たN N> = 0の関係があったT1とT2との間の関係
ds.Relations.Add("T1ToT2",
tables["T1"].Columns["T1Id"],
tables["T2"].Columns["T1Id"]);
T2はDataGridを使用しており、現在選択されているT1レコードにリンクされているレコードのみを表示する必要があります。 これを実現するには、DataGridのItemsSourceにはどのような要素が必要ですか?私はこれをする何かを見つけていない。 これはMVVMアプリケーションであることに注意してください。コードビハインドはオプションではありません。
ご協力いただきまして誠にありがとうございます。
MVVMアプリケーションの場合、なぜこれらの奇妙なテーブルとリレーションシップを使用しますか?モデルを表示し、データセットやその他の動的ビューではなく、実際のプロパティと観測可能なコレクションを使用するように、すべてのモデルを変換することをお勧めします。 – vorrtex
これは、リモートシステム(Microsoft以外)からデータを受信する方法です。なぜこれらのテーブルは奇妙なのですか? T1の再帰的構造のために? – JKO
文字列リテラルと角かっこのためです。最初に、各データモデルのビューモデルを作成する方が良いでしょう。なぜなら、クラスのようなクラスへのバインディングは、クラスT1ViewModel {public ObservableCollection T2Items {get;セット; }} 'ははるかに便利で簡単です。 –
vorrtex