SilverLight ListBoxDragDropTarget不改变顺序

时间:2012-08-14 09:28:27

标签: silverlight silverlight-5.0

我正在使用ListBoxDragDropTarget,当我拖动N放置一个项目时,绑定到ListBox的ObservableCollection不会更改其项目顺序。

 <controlsToolkit:ListBoxDragDropTarget AllowDrop="True"
                                               Grid.Row="1"
                                               HorizontalContentAlignment="Stretch"             
                                               VerticalAlignment="Top"
                                               Margin="0,10,8,10"
                                               ItemDragCompleted="ListBoxDragDropTarget_ItemDragCompleted_1"
                                               BorderThickness="0">
                  <ListBox x:Name="servicesListBox" ItemsSource="{Binding ServiceCollection}" 
                           ScrollViewer.HorizontalScrollBarVisibility="Disabled"
                           SelectionChanged="servicesListBox_SelectionChanged_1"
                           SelectedItem="{Binding SelectedService, Mode=TwoWay}" 
                           Margin="0,102,0,0" Background="#FF040404"
                           SelectionMode="Extended"
                           Foreground="White" Width="800" HorizontalAlignment="Center" BorderBrush="#FF040404" Height="340" VerticalAlignment="Top" >
                      <ListBox.ItemsPanel>
                          <ItemsPanelTemplate>
                            <controlsToolkit:WrapPanel />
                          </ItemsPanelTemplate>
                      </ListBox.ItemsPanel>
                      <ListBox.ItemTemplate>
                          <DataTemplate>
                            <StackPanel Width="250" Margin="4" Orientation="Horizontal">                                    
                                  <TextBlock Text="{Binding Title}" Foreground="{Binding IsDesactivated, Converter={StaticResource OnlineColorConverter}}"
                                            HorizontalAlignment="Left" VerticalAlignment="Center" Margin="2,0,0,0" Width="190" />
                            </StackPanel>
                          </DataTemplate>
                      </ListBox.ItemTemplate>
                  </ListBox>
            </controlsToolkit:ListBoxDragDropTarget>

1 个答案:

答案 0 :(得分:0)

可能是ObservableCollection中的项目是异构的。当您使用多态时,会发生这种情况,例如,如果您有一个ObservableCollection,但它实际上包含MyClass类型的元素。这是ListBoxDragDropTarget的错误,但此控件位于“实验”质量范围内。

两种可能的修复方法: