【发布时间】:2015-07-23 13:05:19
【问题描述】:
我不知道是不是巧合,但是在使用更新 5 更新 Visual Studio 2013 后,我的列表视图不再更新。因为我不是任何 mvvm wpf 专家,请寻求帮助。
每次插入或拔出 USB 时都会更新应用程序列表 - 这是在后台工作程序和事件处理程序的帮助下发生的。
我的视图模型
public ObservableCollection<Devices> devicelist { get; protected set; }
void DeviceInsertedEvent(object sender, EventArrivedEventArgs e)
{
fd.FindDevices();
RefreshList();
}
void DeviceRemovedEvent(object sender, EventArrivedEventArgs e)
{
fd.FindDevices();
RefreshList();
}
public void RefreshList()
{
devicelist = new ObservableCollection<Devices>();
devicelist.Clear();
foreach (var item in fd.devices)
{
devicelist.Add(item);
}
}
所以,如果设备被插入或拔出,FindDevices 方法就会启动(这个循环只是询问每个设备的信息),最后我会得到包含所有信息的设备列表。我喜欢刷新列表。 “fd.devices”只有 WPF 不刷新的设备数量正确。 如果有人有任何问题,请询问。请帮我解决我的问题:)
【问题讨论】:
-
当我启动应用程序时也很有趣 - public ViewModel(),ListView 更新通常也通过 fd.FindDevices 和 RefreshList()
-
如何绑定数据查看?还有,devicelist.Clear();没有任何意义,因为您已经创建了一个新列表。
-
对不起,Ugur,我刚刚玩的时候已经被删除了;)但仍然不起作用! :)
-
好的,但是添加“devicelist.Add(item);”之后在做什么,应该有一些类似“fd.devices.ItemSource = devicelist”的代码或者我不知道,可以吗是一个绑定问题。如何将数据绑定到视图
-
他必须绑定到
devicelist属性。向我们展示您的 ListView 的 XAML,以便我们了解您是如何绑定它的。
标签: c# wpf listview mvvm observablecollection