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

Ana*_*neh 2 c# xaml listview drag-and-drop uwp

我试图ListView 通过拖放重新排序,它在使用静态项目时与我一起工作,但是当我使用itemsSorce绑定数据时绑定数据时,拖动工作正常,但我无法删除该项目,这是我的代码

C#:

lstSrvMenu.ItemsSource = Menue.MainItems.Where(m => int.Parse(m.GroupID) > 0);
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

Nic*_*SFT 5

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

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

例子

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

在此输入图像描述