質問

最初に表示される新しいグループを追加するためのラベルとボタンを使用して、グループのリストを表示するデータバインドアイテムコントロール用の次の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行に表示されます。

  

グループ+ Group1 Group2 Group3

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

  

グループ+
  Group1 Group2 Group3 Group4
  Group5

ラップパネルがネストされているので、なぜこれが起こっているのか理解できます。私の質問は、内側の折り返しパネルに最初のラベルとボタンを含めて、それらが単独で行にならないようにする方法です。

  

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

役に立ちましたか?

解決

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

  

グループ+グループ1グループ2グループ3
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Group4 Group5

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

  1. 他のコントロール( Label および Button )、またはバインドしているコレクション内のこれらのコントロールを再現するビューモデルを含めます。
  2. 独自の Panel を作成します。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top