更改为ObservableCollection时出错
本文关键字:出错 ObservableCollection | 更新日期: 2023-09-27 17:50:55
我是WPF新手,有一个初学者的问题。每当我向集合中添加数据时,我的UI只有在我重新启动程序后才会更新。我最初使用ICollection,但意识到我需要使用OvservableCollection来更新集合。当我将Customers属性从ICollection切换到ObservableCollection时,我在UpDate方法上得到一个错误,说我不能隐式转换。可以强制转换ObservableCollection。我还能怎么解决这个问题?提前谢谢。
ViewModel.cs
public ViewModel()
{
Customers = new ObservableCollection<Customer>();
UpDate();
}
public void UpDate()
{
Customers.Clear();
foreach (var customer in context.Customers.OrderBy(c => c.Name))
{
Customers.Add(customer);
}
}
#region Add new customer,project,program,rev methods
public void AddCustomer(string customerName)
{
using (context = new RevisionModelContainer())
{
var customer = context.Customers;
customer.Add(new Customer { Name = customerName });
context.SaveChanges();
UpDate();
}
}
public ObservableCollection<Customer> Customers { get; set; }
public ObservableCollection<Project> Projects { get; set; }
public ObservableCollection<Program> Programs { get; set; }
public ObservableCollection<Revision> Revisions { get; set; }
public DateTime Dates { get; set; }
public string Notes { get; set; }
Customer.cs
public partial class Customer
{
public Customer()
{
this.Projects = new ObservableCollection<Project>();
}
public int Id { get; set; }
public string Name { get; set; }
public virtual ObservableCollection<Project> Projects { get; set; }
}
创建Customers
在ViewModel
构造器中的实例
public ViewModel()
{
Customers = new ObservableCollection<Customer>();
UpDate();
}
并在UpDate
调用
public void UpDate()
{
Customers.Clear();
foreach(var customer in context.Customers.OrderBy(c => c.Name)) Customers.Add(customer);
}