1

wpfアプリケーションにトグルボタンがあります。起動時にトグルボタンを設定する必要があります。

私のXamlファイル:

<ToggleButton Content="AUD Reset" IsChecked="True" Height="23" HorizontalAlignment="Center" Margin="0" Name="button4" Command="{Binding Path=ConnectCommand}" VerticalAlignment="Center" Width="100" />                   

トグルボタンをクリックして、viewmodelクラスのトグル状態を確認し、trueが返された場合は、次の操作を実行します。

私のViewModelクラス:

private ICommand mUpdater;
    public ICommand ConnectCommand
    {
        get
        {
            if (mUpdater == null)
                mUpdater = new DelegateCommand(new Action(ConnectToSelectedDevice), new Func<bool>(ConnectCanExecute));

            return mUpdater;
        }
        set
        {
            mUpdater = value;
        }
    }

    public bool ConnectCanExecute()
    {
        return true;
    }

    public void ConnectToSelectedDevice()
    {
        mComm.SetAddress(0x40);
        Byte[] buffer= new Byte[2];
        buffer[0] = 0x24;
        buffer[1] = 0x00;

        if(Check if button togglestate is set, if true then)
        {
         buffer[1] = 0x04;
        }
        mComm.WriteBytes(2, buffer);
    }

ビューモデルでトグルボタンがチェックされているかどうかを確認し、上記のステートメントを実行するにはどうすればよいですか。

助けてください!!

4

1 に答える 1

2

ViewModel に IsChecked プロパティを追加し、それを ToggleButton.IsChecked 依存プロパティにバインドできます。

public bool IsChecked {
   get { return this.isChecked; }
   set {
      this.isChecked = value;
      this.OnPropertyChanged("IsChecked");
   }
}

<ToggleButton Content="AUD Reset" IsChecked="{Binding Path=IsChecked}" Height="23" HorizontalAlignment="Center" Margin="0" Name="button4" Command={Binding Path=ConnectCommand} VerticalAlignment="Center" Width="100" />    

次に、その状態を確認します。

public void ConnectToSelectedDevice()
{
    mComm.SetAddress(0x40);
    Byte[] buffer= new Byte[2];
    buffer[0] = 0x24;
    buffer[1] = 0x00;

    if(this.IsChecked)
    {
     buffer[1] = 0x04;
    }
    mComm.WriteBytes(2, buffer);
}

最後に、ViewModel のコンストラクターで IsChecked プロパティを初期化します。

public ViewModel() {
   this.IsChecked = true;
}
于 2012-10-03T11:15:14.013 に答える