2

canExecute パラメーターを使用して、非常に標準的な MVVM Light RelayCommand を作成します。

() => (customer.Regions.Count > 0)

必要に応じて呼び出すRaiseCanExecuteChanged();と、canExecute が正しく再評価されません。次に、次のように手動でも呼び出します: var canExecute = myCommand.CanExecute(null);、それでも間違っています。I do の直後の次のステートメントvar foo = (customer.Regions.Count > 0)では、正しい結果が返されます。ここで何が起こっているのですか?

コマンド定義:

SaveCustomerRegionsCommand = new RelayCommand(SaveCustomerRegions, () => (customer.Regions.Count > 0));

customer は、クラスがインスタンス化されるときに設定されるプライベート プロパティです。

4

1 に答える 1

0

(コメントから) ラムダ式の使用を避けるために CanExecute メソッドを作成します。

あなたが示唆するように、MVVM Light Framework の IsAlive プロパティが何らかの形で干渉しているように見えます。必要に応じて、それに関する別の質問を投稿できます。よろしく!

于 2013-01-04T12:59:09.647 に答える