2014-04-04 269 views
0

我想通過從視圖中構造數據,查看模型 這是我的看法具有IEnumerable的類型參數將數據傳遞給視圖模型

public SearchView(IEnumerable<ISearchable> enumerable) 
    { 
     InitializeComponent(); 
    } 

,我想使用相同的枚舉對象的視圖模型

public SearchViewModel() 
    { 
     SearchCommand = new RelayCommand(TestSearch); 
    } 

我該如何做到這一點。任何幫助將高度apreciated。

回答

0

當然,你可以做到這一點,當你加載視圖。看看我的僞代碼:

dependency property of type object objProperty = null; 

    private object tempObj; 

    public MyWindow(object param) : base() 
    { 
     tempObj = param; 

     // create one way to source Binding 
     Binding b = new Binding("DataContext.ViewModelProperty"); 
     b.Source = this; 
     b.Mode = BindingMode.OneWayToSource; 
     this.SetBinding(b, objProperty); 

     // listen to DataContext changes 
     this.DataContextChanged += OnDataContextChanged 
    } 

    private void OnDataContextChanged(...) 
    { 
     // push data to ViewModel 
     this.SetCurrentValue(objProperty, tempObj); 
    } 

這就是你如何允許數據從View到ViewModel。

每次DataContext或更好的表示ViewModel的變化,你會通過綁定到你的價值。

+0

在我的情況下,我想訪問IEnumerable enumerable,它是viewmodel中的構造函數參數。我怎麼能這樣做,你會更詳細說明。謝謝 – Gautam

+0

你似乎是要求UnityContainer在這裏看看http://msdn.microsoft.com/en-us/library/ff649614.aspx –