WPF ItemsControl associazione dati - aggiunta di controlli iniziali extra
-
03-07-2019 - |
Domanda
Ho il seguente XAML per un controllo degli elementi del database per mostrare un elenco di gruppi, con un'etichetta e un pulsante per aggiungere un nuovo gruppo che appare per primo:
<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 piccolo numero di gruppi, tutto appare su una riga.
Gruppi + Gruppo1 Gruppo2 Gruppo3
Quando aggiungo altri gruppi, il pannello di avvolgimento contenente gli articoli si avvolge, ma l'etichetta e il pulsante iniziali per aggiungere un nuovo gruppo si trovano sulla propria riga, con i gruppi di database che iniziano sulla riga successiva.
Gruppi +
Gruppo1 Gruppo2 Gruppo3 Gruppo4
Group5
Posso capire perché questo sta accadendo, poiché i pannelli di avvolgimento sono nidificati. La mia domanda è: come posso includere la prima etichetta e il pulsante nel pannello di avvolgimento interno in modo che non siano in fila da soli?
Gruppi + Gruppo1 Gruppo2 Gruppo3
Gruppo4 Gruppo5
Soluzione
Se sei soddisfatto di questo:
Gruppi + Gruppo1 Gruppo2 Gruppo3
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Group4 Group5
Quindi suggerirei di usare un Grid
esterno e un WrapPanel
interno. Altrimenti, le tue opzioni sono:
- Includi gli altri controlli (
Etichetta
eButton
) o un modello di vista che riprende i controlli nella collezione a cui sei vincolante. - Scrivi il tuo
pannello
.