2015-02-19 5 views
0

У меня есть список, который я бы хотел передать в ViewModel.Intuitively, я думал, что это было бы просто, передав его параметру конструктору ViewModel, но при этом я получаю ошибка, что конструктор ViewModel должен быть ... без параметров Это не так:как передать данные в ViewModel в WP8 C#

public SomeMethod(){ 
     List<T> list = new List<T>(); 
     ViewModel vm = new ViewModel(list); 
    } 

модели представления:

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..for один я думал о создании другого метода в ViewModel, который принимает список как параметр, но как бы я мог вызвать его из конструктора, так как конструктор должен передать ему параметр.

+0

Вы можете создать второй конструктор без параметров. –

+0

вы можете добавить параметр конструктор конструктор \ default. в Visual Studio типа ctor и нажмите TAB – Shaan

+0

@Yuri я создал это уже, но при соединении со стороной XAML, он все же указывает на конструктор без параметров, а не на другой, поскольку он ожидает, что irt будет без параметров ... примерно так:

ответ

0

Просто оставьте конструктор пустым и внесите изменения в Свойство Collection -Property в поле Свойства.

После этого вы можете делать в своем сеттере все, что захотите.

private ObservableCollection<T> _collection 
    public ObservableCollection<T> Collection { 
get{ 
return this._collection; 
} 
set{ 
this._collection = value; 
// Do what you want here 
}