ListBox と 3 つのボタンを持つ DocumentListView.Xaml があります。
その UserControl の背後には、3 つのボタンと 3 つの RelayCommand にバインドされた Command プロパティを持つ DocumentListViewModel があります。
AdministrationController、BillingController、ReportController のような 3 つのコントローラーがあります。
すべての Controller には、 Customer 1 : N Order 1: N Document のような ObservableCollections があり、他の Controller と同じです。
あるコントローラーでは、特別な束縛状況があります。DocumentListViewModel が OrderViewModel のような親 ViewModel によって初期化されていない場合 (注文がロードされていないか存在しないため)、UserControl には有効な 3 つのボタンがあります。ユーザーは 3 つのボタンを押すことができ、何も起こりませんが、それでも非常に混乱し、何よりもユーザー インターフェイスの一貫性が失われています。
ボタンのコマンドをデフォルトで「無効」に設定するにはどうすればよいですか?
Buttons IsEnabled プロパティを false に設定しても、ボタンは永久に無効な状態のままになるため、役に立ちません。No CanExecute TRUE は IsEnabled = true に設定します。
そして、別のプロパティ IsButtonEnabled を導入したくありません...それはばかげています。なぜなら、ボタンロジックの背後に世界の winform と wpf の両方があるからです... ICommand で十分なはずです。