C# 如何在WP8 C中将数据传递给ViewModel
我有一个列表,我想传递给ViewModel。直觉上,我认为传递它是一个参数给ViewModel的构造函数会很简单,但在这样做时,我得到了一个错误,ViewModel的构造函数应该是无参数的……这种情况下:C# 如何在WP8 C中将数据传递给ViewModel,c#,wpf,windows-phone-8,mvvm,C#,Wpf,Windows Phone 8,Mvvm,我有一个列表,我想传递给ViewModel。直觉上,我认为传递它是一个参数给ViewModel的构造函数会很简单,但在这样做时,我得到了一个错误,ViewModel的构造函数应该是无参数的……这种情况下: public SomeMethod(){ List<T> list = new List<T>(); ViewModel vm = new ViewModel(list); } viewmodel: public class Vi
public SomeMethod(){
List<T> list = new List<T>();
ViewModel vm = new ViewModel(list);
}
viewmodel:
public class ViewModel
{
public ObservableCollection<T> Collection { get; set; }
public ViewModel(List<T> t)
{
Collection = new ObservableCollection<T>();
foreach (T item in t)
{
this.Collection.Add(new T (item.value));
}
}
还有什么其他方法可以将列表传递给ViewModel..有一种方法我想在ViewModel中创建另一个方法,该方法接受列表作为参数,但是,由于构造函数也必须将参数传递给它,我如何才能从构造函数调用它。只需将构造函数保留为空,并将集合属性修改为带有支持字段的属性即可 在这之后,你可以在你的二传手上做任何你想做的事
private ObservableCollection<T> _collection
public ObservableCollection<T> Collection {
get{
return this._collection;
}
set{
this._collection = value;
// Do what you want here
}
您可以创建第二个无参数构造函数。您可以添加无参数构造函数\默认构造函数。在VisualStudio中键入ctor并按TAB@Yuri我已经创建了它,但在与XAML端链接时,它仍然指向无参数构造函数,而不是另一个,因为它期望irt是无参数的……类似于这样:请参阅本文。在XAML中绑定时,需要使用依赖项注入将参数传递给viewmodel。如果使用MEF,则可以使用无参数构造函数和DI属性。