0

最初の列に「+」記号が含まれ、次の列にデータが含まれる Datagrid を作成しようとしています。ユーザーが「+」記号をクリックすると、データが現在の行から取得され、別のテーブルの対応する階層データが現在の行のすぐ下の新しいグリッドに表示されます。オンラインで検索してみましたが、例が見つかりませんでした。

これを確認する方法を教えてください。

グリッドに含まれているとしましょう

  • col1 Col2.... Col50
  • col1 Col2.... Col50

ユーザーが「+」記号をクリックしたとき。

col1、Col2、Col3、Col4 と読む必要があります。

次に、db 呼び出しを行い、上記の値に基づいてデータを取得します。

結果のグリッドは

  • col1 col2.... Col50 NestedCol1 NestedCol2... NestedCol20 NestedCol1 NestedCol2... NestedCol20 . . . . .
  • col1 col2... Col50

ありがとう、ナビーン

4

1 に答える 1

1

DataGrid で新しい RowDetailsTemplate を定義する必要があるようです。Resources で、2 行のグリッドを持つ新しい DataTemplate を定義します。

  • 最初の行は、通常のデータ :col1、col2、...、および 2 番目の行を制御するボタン (「+」ボタン) になります。
  • 2 番目の行には、ニーズに最適な新しいコントロール (ItemsControl、ListBox、DataGrid など) があります。

「+」ボタンは、2 番目の行の可視性と、適切な行のデータの読み込みを制御します。

これにより、正しい方向に進むことができることを願っています。

編集:

階層データは、何らかのコレクションに配置することにより、最初の行のデータの一部にする必要があります。

public class Foo{
object Col1 {get;set;}
object Col2 {get;set;}

object Col50 {get;set;}
NestedFoo[] NestedData {get;set;}}

public class NestedFoo{
object NestedCol1 {get;set;}
object NestedCol2 {get;set;}

object NestedCol50 {get;set;}}

このようにして、2 行目のコントロールの ItemsSource をコレクションに設定できます。

于 2011-06-24T15:39:41.680 に答える