をパラメータとしてOnNavigatedToAsync
に渡すことができますか?この種の情報を渡すより良い方法はありますか?テンプレート10のOnNavigatedToAsyncのTuple <ThisThing、bool>パラメータ
私はこれを試しましたが、下のValue =
行に無効なキャスト例外が続きます。 Tuple
としてパラメータを渡す
public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary<string, object> suspensionState)
{
Value = (Tuple<ThisThing, bool>)((suspensionState.ContainsKey(nameof(Value))) ? suspensionState[nameof(Value)] : parameter);
}
:値がTuple<ThisThing, bool>
ViewModel.csとして入力されます。
public void GoToDetailsPage() =>
NavigationService.Navigate(typeof(ThisThingPage), (new ThisThing() { Prop1=1, Prop2=2}, true));
EDIT1:私はすでに
public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary<string, object> suspensionState)
{
Value = (Tuple<ThisThing, bool>)parameter;
}
とするときにこれを簡素化しようとしました デバッグとOnNavigatedToAsync
に足を踏み入れると、私はそれは私が、期待するものであることがわかりますparameter
の上にマウスを移動Tuple
ですが、次の行にはInvalidCastException
が入ります。
は1行ですべてを入れないでください。デバッガで 'var x = suspensionState [nameof(Value)]'を指定すると 'x 'が実際に何であるかを調べることができます。明らかにその 'タプル' –
申し訳ありません。私はすでに何か似たようなことを言いました。元の投稿を編集する –
'ValueTuple'は' Tuple'ではないようです。今それを掘り起こす。 –