1

特定の数のStackPanelを持つStackPanelを含むDataTamplateを作成しようとしています。

        <DataTemplate x:Key="DataTemplate">
        <StackPanel Orientation="Vertical">
            <StackPanel Orientation="Horizontal">
                <Rectangle Fill="Aqua" Margin="2" Height="100" Width="50"  VerticalAlignment="Top" HorizontalAlignment="Left"/>
            </StackPanel>
        </StackPanel>
    </DataTemplate>

上記のコードスニペットは、覆い隠されたStackPanelの要素がバインドされるため、目的の結果をよりよく理解するためのものです。

これにより、次のエラーメッセージが生成されます。ItemsPanelTemplateのVisualTreeは単一の要素である必要があります。

うまくいく可能性のある代替案はありますか?

4

1 に答える 1

6

ItemsControlソースリストにItemsSourceバインドする必要があります。で、ItemsControl.ItemsPanelアイテムに使用するパネルを設定できます。あなたの場合、 asで使用StackPanelする必要があります。ここで最初のサンプルを参照してください。ただし、垂直はすでにデフォルトになっているため、省略できます。Orientation=VerticalItemsPanelStackPanelItemsPanel

内側は、のStackPanelように指定する必要がありItemTemplateますItemsControl

XAMLは次のようになります。

<ItemsControl ItemsSource="...">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <!-- properties of your object should go here -->
            </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
于 2012-11-02T14:23:01.820 に答える