我希望将listview的datacontext绑定到可观察的集合。现在我有:
// CurrentEmploye = some employee
Entities.DatabaseModel m = new Entities.DatabaseModel();
var q = from t in m.TimeSheet
join emp in m.Employees on t.idEmployee equals emp.id
where emp.id == CurrentEmploye.id
select new
{
firstName = emp.firstName,
lastName = emp.lastName,
position = emp.position,
clockInDate = t.clockInDate,
clockOutDate = t.clockOutDate,
};
listView1.DataContext = q;
该代码正确填充了listview。现在,每当我更新listview项时,我都想更新listview。
我希望变量q
的类型为ObservableCollection,而不必创建包含firstName,lastName,position等的自定义类...我该怎么做?
答案 0 :(得分:14)
您可以作弊并创建一种方法来为您完成,因为方法可以自动推断泛型类型:
public ObservableCollection<T> ToObservableCollection<T>(IEnumerable<T> enumeration)
{
return new ObservableCollection<T>(enumeration);
}
哦,如果它有帮助你可以创建它作为扩展方法,所以它更容易使用......由你决定。
答案 1 :(得分:1)
除了m-y的答案,为了将它作为一个扩展,你应该把&#34;这个&#34;在方法参数之前:
public ObservableCollection<T> ToObservableCollection<T>(this IEnumerable enumeration){ return new ObservableCollection<T>(enumeration) }