私は、ViewからどのViewModelをナビゲートする必要があるかを設定できる方法を見つけようとしています。これは、コアプロジェクトを変更せずにナビゲーションフローを変更できるようにするためです。動的ViewModelのナビゲーション
ターゲットのViewModelをそこに設定し、インタフェースをViewModelに注入してナビゲーションを実行する方が簡単な方法だと思いました。
public interface IModelMapping
{
MvxViewModel ViewModelToNavigate();
}
public class MyViewModel : MvxViewModel
{
readonly IMvxNavigationService navigationService;
readonly IModelMapping modelMapping;
public MyViewModel(IMvxNavigationService navigationService, IModelMapping modelMapping)
{
this.navigationService = navigationService;
this.modelMapping = modelMapping;
}
public IMvxAsyncCommand GoContent
{
get
{
IMvxViewModel vm = modelMapping.ViewModelToNavigate();
IMvxAsyncCommand navigateCommand = new MvxAsyncCommand(() => navigationService.Navigate<vm>());
return navigteCommand;
}
}
}
このコードの問題は、navigationService.Navigate()を設定する際にエラーが発生しています。エラーは 'vmは変数ですが型のように使用されます'
何ファサードと一緒にURIのナビゲーションを使用してはどうですか? も参照してくださいhttps://www.mvvmcross.com/documentation/fundamentals/navigation#uri-navigation – Martijn00
@ Martijn00 URIナビゲーションでソートし、アセンブリでViewModel IDを設定し、そのIDをビューからのインターフェイスに送信するViewModel – malaka