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" />                   

在切换按钮单击时,我想检查我的视图模型类中的切换状态,如果它返回 true,那么我想做以下操作:

我的视图模型类:

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

您可以将 IsChecked 属性添加到您的 ViewModel 并将其与 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 回答