私はListBoxと3つのボタンを持つDocumentListView.Xamlを持っています。WPF/MVVM:UserControlの背後にあるViewModelがまだ初期化されていないときにButtonの状態を無効にしますか?
そのUserControlの背後には、3つのボタンとそのコマンドプロパティが3つのRelayCommandsにバインドされたDocumentListViewModelがあります。
私は、AdministrationController、BillingController、ReportControllerのような3つのコントローラを持っています。
すべてのコントローラには、顧客1:N注文1:NドキュメントのようなObservableCollectionsが他のコントローラと同じです。
私は特別な拘束状況を持っています。私のDocumentListViewModelがOrderViewModelのような親ViewModelによって初期化されていないとき(注文がロードされていない/存在しないため)、私のUserControlには3つのボタンが有効になっています。ユーザーは3つのボタンを押すことができますが、何も起こりませんが、それでも非常に混乱し、特にユーザーインターフェイスの一貫性はなくなりました。
ボタンのコマンドをデフォルトで「無効」に設定するにはどうすればよいですか?
ボタンを設定するIsEnabledプロパティをfalseに設定しても、ボタンは永久に無効な状態にとどまるため、役立たない。 CanExecute TRUEを設定すると、IsEnabled = trueに設定されます。
私は別のプロパティを導入したくありませんIsButtonEnabled ...その愚かなことは、私は両方のwinformsとwpfをボタンのロジックの後ろに持っているからです... ICommandで十分です。
あなたのスタイルでは、IsEnabledプロパティはどのようにTRUEに設定されますか? – Elisabeth
トリガーがヒットしない場合はいつでも、通常のプロシージャーが呼び出されます。つまりCommandプロパティが設定され、CanExecuteがtrueと評価されたとき。 – Goblin
作品!それは今カウント!ありがとうゴブリン。 – Elisabeth