假設我有一個列表框綁定到Foo
對象的集合,並且所選的Foo
顯示在contentcontrol中,其內容模板爲FooView
。MVVMLight--將參數傳遞給ViewModel構造函數?
有沒有一種方法,我可以讓這個在FooView
將選擇的Foo
到FooViewModel
的構造是它的datacontext通過ViewModelLocator
?
假設我有一個列表框綁定到Foo
對象的集合,並且所選的Foo
顯示在contentcontrol中,其內容模板爲FooView
。MVVMLight--將參數傳遞給ViewModel構造函數?
有沒有一種方法,我可以讓這個在FooView
將選擇的Foo
到FooViewModel
的構造是它的datacontext通過ViewModelLocator
?
MainViewModel
/*INotifyPropertChanged property*/
public FooViewModel CurrentFooVM{
get{/*INPC code*/}
private set{/*INPC code*/}
}
/*INotifyPropertChanged property*/
public Foo SelectedFoo{
get{/*INPC code*/}
set{/*INPC code*/ CurrentFooVM = new FooViewModel(_selectedFoo)}
}
public ObservableCollection<Foo> Foos {get; private set;}
的MainView
<ListBox ItemsSource={Binding Foos}
SelectedItem={Binding SelectedFoo}>...
<FooView... bind to CurrentFooVM...
我聽說,雖然在Visual Studio中的工具不支持它,XML規範也允許你實例化一個類的構造函數的參數。我從來沒有這樣做過,但聽說在.Net Rocks播客中這是可能的。也可能僅與WPF相關,而不是Silverlight,因爲WPF比Silverlight具有更多功能。沒有太多的幫助,但可能會讓你走上正軌。