假设我有一个列表框绑定到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具有更多功能。没有太多的帮助,但可能会让你走上正轨。