使用UWP通过拖放重新排序可绑定列表视图

时间:2017-10-02 09:06:01

标签: c# xaml listview drag-and-drop uwp

我试图通过拖放重新排序ListView,它在使用静态项目的同时与我合作,但是当我使用 itemsSorce 绑定数据时,拖动工作正常但是我不能放弃这个项目,这是我的代码

C#:

lstSrvMenu.ItemsSource = Menue.MainItems.Where(m => int.Parse(m.GroupID) > 0);

XAML:

<ListView Name="lstSrvMenu" Margin="0,40,0,0" AllowDrop="True" CanDragItems="True" CanReorderItems="True" IsSwipeEnabled="true">
    <ListView.ItemTemplate>
      <DataTemplate>
         <TextBlock Text="{Binding GroupTDesc}" TextWrapping="WrapWholeWords" VerticalAlignment="Center" HorizontalAlignment="Left"/>
      </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

1 个答案:

答案 0 :(得分:1)

  

当我使用itemsSorce绑定数据时,拖动工作正常,但是我不能删除该项目,这是我的代码。

问题是ListView ItemSourse的类型不是ObservableCollection。完全拖动项目时,数据源的排序不会更改,界面也不会相应更改。根据您的要求,您可以使用ObservableCollection代替List<>

示例

var list = new ObservableCollection<string>();
for (var i = 0; i < 10; i++)
{
    list.Add(i.ToString() + "Template");
}
lstSrvMenu.ItemsSource = list;

enter image description here