Pregunta

Tengo el siguiente XAML para un control de elementos enlazados a datos para mostrar una lista de grupos, con una etiqueta y un botón para agregar un nuevo grupo que aparece primero:

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

Con un pequeño número de grupos, todo aparece en una línea.

  

Grupos + Grupo1 Grupo2 Grupo3

Cuando agrego más grupos, el panel de ajuste que contiene los elementos se ajusta, pero la etiqueta inicial y el botón para agregar un nuevo grupo están en su propia fila, con los grupos enlazados a datos que comienzan en la siguiente fila.

  

Grupos +
  Grupo1 Grupo2 Grupo3 Grupo4
  Grupo 5

Puedo entender por qué sucede esto, ya que los paneles de envoltura están anidados. Mi pregunta es: ¿cómo incluyo la primera etiqueta y el botón en el panel de envoltura interno para que no estén en una fila por su cuenta?

  

Grupos + Grupo1 Grupo2 Grupo3
  Grupo 4 Grupo 5

¿Fue útil?

Solución

Si estás contento con esto:

  

Grupos + Grupo1 Grupo2 Grupo3
  & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Grupo4 Grupo5

Luego sugeriría usar un Grid externo y un WrapPanel interno. De lo contrario, sus opciones son:

  1. Incluya los otros controles ( Label y Button ) o un modelo de vista que reproduzca esos controles en la colección a la que está vinculado.
  2. Escriba su propio Panel .
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top