【发布时间】:2018-01-02 15:56:04
【问题描述】:
当我在 listView 上使用 Josh Smith 的 DnD 问题时遇到了一些困难。
我有一个“DetailTable”的 ObservableCollection,我在创建视图时在 ViewModel 中初始化:
(ListeTables 是我初始化和使用数据的 CollectionViewSource)
public ObservableCollection<DetailTable> ListeTablesDisplay
{
get
{
var l = ListeTables.View.Cast<DetailTable>().ToList();
return new ObservableCollection<DetailTable>(l);
}
}
Xaml 文件中的 listView :
<ListView Name="ListeViewTables" SelectionMode="Single"
AllowDrop="true"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ItemsSource="{Binding ListeTablesDisplay, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
SelectedItem="{Binding SelectedTable, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Margin="10,83,831,61">
然后我在 View CodeBehind 中为 DnD 调用 Josh Smith 的班级:
public DataView()
{
InitializeComponent();
new ListViewDragDropManager<DetailTable>(this.ListeViewTables);
}
到目前为止,拖放工作正常,但在 ViewModel 中,ObservableCollection 的项目顺序与我在 View 中所做的不一致。
示例:如果我将 item-3 移动到第 5 位,则 View 可以,但是当我调试时,我看到 item-3 总是在我的 ObservableCollection 中的第 3 位。
对于我想做的事情非常有问题,希望有人能帮助我!
谢谢
【问题讨论】:
-
你有乔希·史密斯班级的网址吗?
-
@EdPlunkett 是的,当然! Used by NuGet
标签: c# wpf listview mvvm drag-and-drop