如何将参数传递给ViewModelLocator中的viewmodel?

时间:2016-07-06 21:57:35

标签: c# wpf mvvm mvvm-light

我们正在使用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;
}

0 个答案:

没有答案