Skip to content

NavigationAware

partial クラスに [NavigationAware] を付与すると INavigationAware メンバーが生成されます。詳細は 英語版 を参照。

[FromNavigationParameter]

[FromNavigationParameter][ObservableProperty] フィールドまたは partial property に付与すると、OnNavigatedToCore が呼び出される前に TryGetValue<T>NavigationContext.Parameters から型付き値を読み取り、プロパティ setter を通じて代入します。

csharp
[NavigationAware]
public partial class DashboardViewModel : BindableBase
{
    [FromNavigationParameter("userId")]
    [ObservableProperty]
    public partial int UserId { get; set; }

    [FromNavigationParameter]  // key は既定で "UserName"
    [ObservableProperty]
    public partial string UserName { get; set; }
}

パラメータが存在しない場合、プロパティは初期値を保持します。key を省略した場合はプロパティ名が既定値になります。

診断: PSG0007(クラスが partial でない)、PSG7006(属性がフィールド/プロパティ以外のメンバに適用された)、PSG7007(メンバに [ObservableProperty] がない)、PSG7008(key が空)。

MIT ライセンスの下で公開されています。