Frage

Ich habe folgende XAML für einen Databound Artikel eine Liste der Gruppen zu zeigen, zu steuern, mit einem Etikett und um eine neue Gruppe erstauftretende hinzuzufügen:

<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>

Mit einer kleinen Anzahl von Gruppen, scheint alles auf einer Linie.

  

Gruppen + Gruppe1 Gruppe2 Group3

Als ich hinzufügen mehr Gruppen, der Wrap-Panel die Elemente enthält, Wraps, aber das erste Label und Button eine neue Gruppe hinzuzufügen auf einer eigenen Zeile ist, wobei die Databound-Gruppen auf der nächsten Zeile beginnen.

  

Gruppen +
  Gruppe1 Gruppe2 Group3 Gruppe4
  Group5

Ich kann verstehen, warum dies geschieht, da die Wickelplatten verschachtelt sind. Meine Frage ist: Wie füge ich das erste Etikett und Knopf in der inneren Hülle Platte, so dass sie auf ihrem eigenen nicht auf einer Zeile sind

  

Gruppen + Gruppe1 Gruppe2 Group3
  Gruppe4 Group5

War es hilfreich?

Lösung

Wenn Sie glücklich mit diesem:

  

Gruppen + Gruppe1 Gruppe2 Group3
  Gruppe4 Group5

Dann würde ich vorschlagen, eine äußere und eine innere Grid WrapPanel verwenden. Andernfalls Ihre Optionen sind:

  1. Fügen Sie die anderen Kontrollen (Label und Button) oder ein Ansichtsmodell, diese Kontrollen in der Sammlung reprenting Sie sind verbindlich.
  2. Schreiben Sie Ihre eigene Panel.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top