My View には、次の 2 つのボタンが含まれています。
<StackPanel Grid.Row="0" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button Content="Start" Width="100" Height="30" Margin="20" Command="{Binding OkCommand}"/>
<Button Content="Cancel" Width="100" Height="30" Margin="20" Command="{Binding CancelCommand}"/>
</StackPanel>
私の VM では、コマンド インターセプトがセットアップされています。
class StockViewModel
{
#region Properties
public ICommand OkCommand { get; set; }
public ICommand CancelCommand { get; set; }
#endregion
#region Constructor
public StockViewModel()
{
OkCommand = new myCommand(myOkExecute, myCanOkExecute);
CancelCommand = new myCommand(myCancelExecute, myCanCancelExecute);
}
#endregion
private void myOkExecute (object parameter)
{
......
}
private bool myCanOkExecute(object parameter)
{
........
}
private bool myCanCancelExecute(object parameter)
{
.......
}
private myCanCancelExecute(object parameter)
{
............
}
#endregion
public class myCommand : ICommand
{
}
質問: ボタンの動作を反対にしたい - つまり、一方がクリック (送信) されたときにもう一方が無効になり、その逆も同様です。フォームが初めてロードされるとき - 送信ボタンはデフォルトで有効になっています。
複数の方法を試しましたが、うまくいかないようです。
ここでは単純な MVVM コードを実行しています - プリズム/イベント アグリゲーターの概念はありません。
そのようなコマンドの動作が一般的にどのように処理されるかを(コードサンプルで)推奨できますか?