我正在使用Windows 8.1通用应用程序,并将我的共享代码放在共享项目中。
我有一个 ViewModel,它需要调用 LINQ 方法来将属性重置为列表中的第一项,这是代码。
public ObservableCollection<Movie> Movies { get; set; }
public Movie Current { get; set; }
...
public void Reset()
{
this.Current = this.Movies.FirstOrDefault();
}
但是,似乎 LINQ 在共享项目中不可用,我无法添加引用。
但是,我可以在 Windows 8.1 和 Windows Phone 8.1 项目中使用 LINQ,因此我可能会在每个项目中创建一个类并从我的 ViewModel 继承,并为每个项目单独实现它。但这似乎对我想要实现的目标有些矫枉过正。
谁能救我?
理解正确,并且您想将电流重置为指向/引用电影集合中的第一个元素,请使用:
this.current = this.Movies.Item[0];
请参阅:集合项属性
我会这样做。由于不能将 Linq 包含在共享库中,因此可以创建一个使用该类的类并传递该类
Class MovieViewModel
{
private IEnumerable<Movie> _movie;
// your sorting logic here
this.Current = this.Movies.FirstOrDefault();
}
或者创建一个静态扩展方法,您可以将集合传递给该方法并对它们进行排序。这样,您就可以使用任何视图模型调用它