我有 2 ViewModels
(ConfigurationViewModel
和EditConfigurationViewModel
)。在ConfigurationViewModel
我有以下代码:
public ConfigurationViewModel()
{
NewConfigCommand = new MvxRelayCommand(DoNewConfig);
EditConfigCommand = new MvxRelayCommand<ConfigurationSet>(DoEditConfig);
}
private void DoNewConfig()
{
this.RequestNavigate<EditConfigurationViewModel>();
}
private void DoEditConfig(ConfigurationSet config)
{
this.RequestNavigate<EditConfigurationViewModel>(new { id = config.Id.ToString() });
}
在 EditConfigurationViewModel 我有以下代码:
public EditConfigurationViewModel()
{
Configuration = new ConfigurationSet();
}
public EditConfigurationViewModel(string id)
{
Configuration = ConfigDataStore.GetConfiguration(Guid.Parse(id));
}
我想要实现的是非常简单的......在触发ConfigurationViewModel
时NewConfigCommand
,我想导航到EditConfigurationViewModel
,并使用无参数构造函数。当EditConfigCommand
被触发时,我想使用接收string
.
这段代码的问题是,无论触发什么命令,总是使用无参数构造函数,并且代码永远不会到达另一个构造函数。
我做了一些实验,通过删除无参数构造函数,结果是调用了另一个构造函数,我得到了预期的结果EditConfigurationCommand
,但是如果我尝试触发NewConfigurationCommand
异常,则由于无参数构造函数的不存在(到目前为止,一切都很好)。
不幸的是,此时我没有安装 VS2010,所以我无法通过 PCL 代码进行调试......我做了一些“眼睛调试”并找到了这个类MvxViewModelLocator
。我认为问题出在此处。也许在DoLoad
尝试获取MethodInfo
...的方法中
在这一点上,我只想知道我是否做错了什么,或者这是否是预期的结果。同时我想我会冒险安装VS2010并祈祷它不会破坏任何东西......