2

コントロールを別のコントロールに動的に追加する方法があるかどうかを調べようとしています(これは少し曖昧です...)。私のプログラムはC#4.0とWPFです。基本的に、私はデータグリッドを作成しようとしていますが、通常のタイプの「セル」(つまり、テキスト、ハイパーリンクなど)を使用するのではなく、各セルに多数のアイテムを保持する必要があります。これはデータグリッドでは不可能であると考えたので、次のことを実行しようとしています。スタックパネルを使用して、可変数のラップパネルを追加します。各ラップパネルには7つのグリッドが含まれ、各グリッドには必要なデータが保持されます(グリッドの代わりにユーザーコントロールを使用する可能性があります...)

私がこれまでに持っているコードの例...

            <StackPanel Height="559" HorizontalAlignment="Left" Margin="24,11,0,0" Name="tyStackPanel" VerticalAlignment="Top" Width="783">
                <WrapPanel Height="100">
                    <Grid Width="100" Height="100">

                    </Grid>
                </WrapPanel>
                <WrapPanel Height="100">

                </WrapPanel>
            </StackPanel>

可変数のラップパネルを作成する方法はありますか?(つまり、データグリッドに可変数の行があるように)

どんな助けや提案も大歓迎です!

PS図私が達成しようとしていることをもう少しよく説明する必要があります。アイテムのコレクションがあり、それぞれに5つのプロパティを一緒に表示したいと思います。これらの項目は、名前(データ列の行など)と列ヘッダー(5つのプロパティの1つではない)によってグループ化されます。コレクションを(Name、ColumnHeader)ペアでグループ化し、各「セル」にこれらの5つのプロパティを表示します。上記で設定しようとしている方法では、「名前」ごとにWrapPanelがあり、各ColumnHeaderのセル/グリッドが含まれています。

4

1 に答える 1

2

WPFは、ItemsControlおよびそのさまざまな派生コントロールでこれを非常によくサポートします。そのうちの1つは、実際DataGridに探しているシナリオをサポートします。

基本的に、、またはこれらのアイテムコントロールのいずれかを使用する場合ItemsControlDataGridItemsSourceデータアイテムを保持するプロパティにバインドしDataTemplate、各アイテムのsを定義します。これは、XAMLの任意の複雑なブロックにすることができます。の場合DataGrid、通常の列をに交換できますDataGridTemplateColumn。これも、必要に応じて複雑にすることができます。

概要については、データテンプレートの概要を確認してください。

于 2012-04-27T17:18:28.040 に答える