2

コマンドを使用して新しい WPF ページを開始する際に問題が発生しています。書き込みで新しい WPF ウィンドウを使用しようとしましたが、何も起こりません。

エラーが表示されませんか?プログラムは正常に動作しますが、ボタンを押しても何も起こりません

私のXAML。

<Button 
            Command="{Binding Path=OpenCrudCommand, UpdateSourceTrigger=PropertyChanged}" 
            Content="CRUD" 
            HorizontalAlignment="Left" 
            Margin="10,352,0,0" 
            VerticalAlignment="Top" 
            Width="83"/>

私のOpenCrudCommand。

ご覧のとおり、WPF ページではなく、新しい WPF ウィンドウで試してみましたが、どちらも機能しませんでした。

ページ 1 は WPF ウィンドウ フォームで、ページ 2 は WPF ページ フォームです。

{
    class OpenCrudCommand
    {
        ProductViewModel _avm;

         public OpenCrudCommand(ProductViewModel avm)
        {
            _avm = avm;
        }



        public void Execute(object parameter)
        {
            var hej = new Page2();
            hej.Show();
        }

    }
}

別の質問があります。コマンドまたはビューモデルで新しいページを開くためのコードを記述する必要がありますか?

4

1 に答える 1

2

より明確にするために、ジェネリック (POCO) クラスにバインドしています。通常、インターフェイスを実装するクラスにバインドする必要がありICommandます。検索を行うRelayCommandDelegateCommand、いくつかの実装を確認してください。これが完了したら、WPF ウィンドウの DataContext として機能するクラス (通常は ViewModel クラス) を設定します。次に、コマンドを公開するViewModelのプロパティを公開します(つまり)

public ICommand MyCommand
{
     get
     {
          return this.myCommand;
     }
}

次に、バインディングは次のようになりますCommand="{Binding MyCommand}"(UpdateSourceTrigger プロパティは必要ありません)。

これでもわかりにくい場合は、追加の質問でお気軽にフォローアップしてください。MVVM パターンについて詳しく読むことをお勧めします。

于 2013-01-02T17:15:39.327 に答える