我们正在使用MVVM Light来处理我们正在开发的WPF应用程序。到目前为止,我们所有的视图模型都不需要将任何参数传递给它们的构造函数。我正在努力的第一个,我们可能会有其他人。以下是我们在ViewModelLocator中声明为属性的VM之一:
static public OrderLineViewModel OrderLineVM
{
get
{
if (ServiceLocator.IsLocationProviderSet)
{
SimpleIoc ioc = ServiceLocator.Current as SimpleIoc;
return ioc.GetInstanceWithoutCaching<OrderLineViewModel>(Guid.NewGuid().ToString());
}
else
{
return null;
}
}
}
OrderLineViewModel是我们将使用默认构造函数的一个,我在其中定义了一个具有2个可空参数的构造函数:
public OrderLineViewModel(long? OrderID, long? ProductID)
在OrderLineVM的声明中,如何指定参数OrderID,例如? (我想为ProductID传递一个null。)
我应该提一下,我总是试图在基于MessageBase的类中使用命令声明。这个命令,比如我现在拥有它(它不完整),看起来像这样:
private void ExecuteViewOrderLineWithParmsCommand(object parameter)
{
string value = parameter as string; //this is the OrderID
//not sure how to get the OrderID information using the OpenViewMessage class below
OpenViewMessage message = new OpenViewMessage();
CurrentViewModel = message.ViewModel = ViewModelLocator.OrderLineVM;
}