ViewModels
(ConfigurationViewModel
と)が 2 つあり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をインストールするチャンスをつかみ、何も壊れないことを祈ります...