J'utilise des listes de sélection pour glisser-déposer où l'utilisateur peut faire glisser des éléments de la liste source et les déposer sur la cible. J'utilise un DataTemplate pour les ListBoxItems de mes contrôles ListBox.Silverlight 4 et SelectedItem de LisBox lors de l'utilisation de DataTemplate en tant que ItemTemplate
Je dois donner à l'utilisateur la possibilité de monter/descendre des éléments dans la liste de cibles après qu'ils aient été déplacés de la source. J'ai deux boutons "Move Up" & "Move Down" pour le faire, mais lorsque l'utilisateur clique sur l'un des boutons, il me renvoie l'objet nul en tant qu'élément sélectionné.
ici est mon code
private void moveUp_Click(object sender, RoutedEventArgs e)
{
ListBoxItem selectedItem = lstmenuItems.SelectedItem as ListBoxItem;
if (selectedItem != null)
{
int index = lstmenuItems.Items.IndexOf(selectedItem);
if (index != 0)
{
lstmenuItems.Items.RemoveAt(index);
index -= 1;
lstmenuItems.Items.Insert(index, selectedItem);
lstmenuItems.SelectedIndex = index;
}
}
}
Je suis sûr que son à voir avec le ItemTemplate. voici le XAML pour listbox
<ListBox x:Name="lstmenuItems" Height="300" MinWidth="200" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Code}"/>
<TextBlock Text="{Binding RetailPrice, StringFormat=£\{0:n\}}" />
</StackPanel>
<!-- Product Title-->
<TextBlock Text="{Binding Description1}" Width="100" Margin="2" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
Toutes les idées comment puis-je accéder à l'élément sélectionné et comment puis-je déplacer vers le haut/bas?
Merci à l'avance
Je l'ai lié à ObeservableCollection mais le problème est qu'il n'est pas trié. Donc, ce que je veux, c'est aller à travers les collections à l'événement de baisse et le trier par l'utilisateur de la commande a chuté dans les listes. – Jhelumi
@Jhelumi: Si vous manipulez ObservableCollection (plutôt que ListBox qui y est lié), le contrôle ListBox doit changer pour refléter les changements dans la collection. – AnthonyWJones