0

グループのリストを表示するデータバインドされたアイテムコントロール用に次のXAMLがあり、最初に表示される新しいグループを追加するためのラベルとボタンがあります。

<WrapPanel Orientation="Horizontal">
    <Label Content="Groups" />
    <Button x:Name="btnGroupAdd" Click="btnGroupAdd_Click" Content="+" />
    <ItemsControl ItemsSource="{Binding}" x:Name="_groupList" >
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel Orientation="Horizontal">
                </WrapPanel>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Border Padding="3" BorderThickness="1">
                    <WrapPanel>
                        <CheckBox x:Name="_groupEnabled" Click="GroupEnabled_Click" IsChecked="{Binding Path=Checked}">
                            <TextBlock x:Name="_groupName" Text="{Binding Path=Group.Name}" ></TextBlock>
                        </CheckBox>
                        <Button x:Name="_deleteGroup" FontStyle="Normal" Click="DeleteGroup_Click" />
                    </WrapPanel>
                </Border>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

グループの数が少ない場合、すべてが1行に表示されます。

グループ+グループ1グループ2グループ3

さらにグループを追加すると、アイテムを含む折り返しパネルが折り返されますが、新しいグループを追加するための最初のラベルとボタンは独自の行にあり、データバインドされたグループは次の行から始まります。

グループ+グループ
1グループ2グループ3グループ4グループ
5

ラップパネルがネストされているため、なぜこれが発生しているのか理解できます。私の質問は、最初のラベルとボタンを内側のラップパネルに含めて、それらが単独で並んでいないようにするにはどうすればよいですか?

グループ+グループ1グループ2グループ3グループ4グループ
5

4

1 に答える 1

1

これに満足している場合:

グループ + グループ 1 グループ 2 グループ 3 グループ 4 グループ
                5

Grid次に、アウターとインナーを使用することをお勧めしWrapPanelます。それ以外の場合、オプションは次のとおりです。

  1. 他のコントロール (LabelおよびButton)、またはそれらのコントロールを表すビュー モデルを、バインド先のコレクションに含めます。
  2. 自分で書いてくださいPanel
于 2009-04-30T14:22:36.133 に答える