EventToCommand は、Load イベントでコマンド パラメーターを渡すことができません
ページまたはユーザー コントロールの Load イベントに関連付けられている場合、EventToCommand は ViewModel でハンドラーを正常に呼び出しますが、CommandParameter を渡しません。ただし、同じ XAML が別のイベント (ボタン クリックなど) に関連付けられている場合、コマンド ハンドラーはデータバインドされたデータをパラメーターとして受け取ります。Xaml:
<i:EventTrigger EventName="Loaded" SourceObject="{Binding ElementName=Control}">
<Command:EventToCommand x:Name="etcLoad"
Command="{Binding LoadCommand}"
CommandParameter="{Binding Target, ElementName=Control}" />
</i:EventTrigger>
ターゲットは、ビュー上の文字列 DP です。
VM コード:
internal void Load(string p_Param)
{
this.Initialise();
}
public RelayCommand<string> LoadCommand { get; private set; }
コマンドは次のように割り当てられます。
this.LoadCommand = new RelayCommand<string>(this.Load);
問題は、ターゲット DP への割り当てまたは同様のものよりも後に行われるバインドにあることはほぼ確実です。この ASAP の解決策、または View から文字列を取得し、OnNavigateTo オーバーライドから文字列が割り当てられている ViewModel に文字列を取得する他の方法を見つけることに興味があります。目標は、「/Views/DisplayTabDetails?Tab=Tab1」などの URI を介して提供されるクエリ プロパティに基づいてタブを選択できるようにすることです。