PRISM(Prism.Core 6.2、Prism.Windows 6.02)で書かれていますが、UWPのページロード/ロードされたイベントにコマンドをバインドする方法も知りたいですプリズムのないMVVM。 WPFではバインディングUWPページMVVMを使用したロード/ロード
、それがで達成可能である:
のViewModelpublic ICommand LoadedCommand { get; private set; }
public TheViewModelConstructor()
{
LoadedCommand = new DelegateCommand(Load);
}
private async void Load()
{
// Do stuff
}
で
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<i:InvokeCommandAction Command="{Binding LoadedCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
しかしUWPに、System.Windows.Interactivityは存在しません。単に
Loaded="{Binding LoadedCommand}"
または
Loading="{Binding LoadingCommand}"
と結合すると、エラー「オブジェクト参照がオブジェクトのインスタンスを設定していない」とコンパイルされます。
私がこれをやりたかったのは、ページがロードされている間(または、ViewModelコンストラクタ内にあることはできません)に実行する必要のある非同期メソッドがあるからです。私は簡単に後ろにコードで行うことができますが、これはMVVMではありません。
このコマンドを正しくバインドするにはどうすればよいですか?
それは動作しますが、そこに'の前に' ' 'する必要があります。あなたは受け入れられた答えとしてマークする前に修正していただけますか? –
kurakura88
あなたはそうです、これはバージョン1.x(まだ使用しています)とパッケージ2の間の変更のようです。私は私の答えに両方を掲示しました。 – Bart
CommandParameterを使用しているときは、常にnullを返します。どんな助け? –