2

私は C# と WPF 全般に非常に慣れていないため、LAMP Web アプリケーションのバックグラウンドを持っています。この件に関するいくつかのチュートリアルに従ってみましたが、困惑しました。

https://rachel53461.wordpress.com/2011/05/08/simplemvvmexample/ http://www.codeproject.com/Articles/165368/WPF-MVVM-Quick-Start-Tutorial

最初のチュートリアルでは、アプリケーションはシンプルなインターフェースで開きます。TextBox と 2 つのボタン。ProductId TextBox を 0 から 1 に更新すると、[Get Product] ボタンがアクティブになります。[Get Product] ボタンをクリックすると、DataTemplate のコンテンツが表示されます。これらのことが実際にどこで起こっているのかわかりません。ボタンがアクティブになる原因は何ですか? フォームが表示される原因は何ですか?

うまくいけば、皆さんとギャルは私のためにそれを馬鹿にすることができます =)

4

3 に答える 3

4

ボタンは にバインドされているため、アクティブ化または非アクティブ化されますICommand。 ボタンがアクティブかどうかを決定するプロパティICommandが含まれています。CanExecute

これらのことが実際にどこで起こっているのかわかりません。

コマンドはデリゲートを使用します。

 _getProductCommand = new RelayCommand(
                param => GetProduct(),
                param => ProductId > 0
            );

2 番目のデリゲートは、(デリゲートが true を返すCanExecute) ときにコマンドをアクティブにします ( true になります)。ProductId > 0

ボタンをクリックすると、コマンドのExecuteメソッドが起動し、アクションが実行されます。

最初に起動するウィンドウについては、「サンプルの開始」というセクションを参照してくださいapp.xaml.cs。最初にウィンドウを表示するために使用されるコードがあります。

于 2013-04-16T17:22:58.590 に答える