0

トグル ボタンの作業を開始したばかりで、ボタンのプロパティを設定しました。1または0を返すトグル状態を確認したい.

XAML:

<ToggleButton Grid.Column="3" Content="On" Command="{Binding VoltageToggleCommand}" IsChecked="{Binding Path=IsChecked}" Name="VoltageToggleBtn" />

ViewModel クラス:

private ICommand mToggleButtonCommand;
    public ICommand VoltageToggleCommand
    {
        get
        {
            if (mToggleButtonCommand == null)
                mToggleButtonCommand = new DelegateCommand(new Action(ToggleButtonCommandExecuted), new Func<bool>(ToggleButtonCommandCanExecute));

            return mToggleButtonCommand;
        }
        set
        {
            mToggleButtonCommand = value;
        }
    }

    /// <summary>
    /// Check for ToggleButton State
    /// </summary>
    private bool isChecked;
    public bool IsChecked
    {
        get { return this.isChecked; }
        set
        {
            this.isChecked = value;
            this.OnPropertyChanged("IsChecked");
        }
    }

    public bool ToggleButtonCommandCanExecute()
    {
        return true;
    }

    public void ToggleButtonCommandExecuted()
    {
        Byte[] cmdArray = new Byte[256];
        int numBytes = 0;
        cmdArray[numBytes++] = // Here I wanna retrieve the toggle state i.e. 1 or 0
        // Some Code
    }

したがって、トグル ボタンをクリックすると、コントロールはToggleButtonCommandExecuted()、状態を確認して に保存する必要がある場所に到達しcmdArrayます。基本的にコード実行時は cmdArray[numBytes++] = 1 or 0 です。

どうすれば達成できますか?:)

4

2 に答える 2

2

自分でブール値からバイトに変換する必要があります

cmdArray[numBytes++] = (byte)(IsChecked ? 1 : 0);
于 2012-10-16T11:49:13.590 に答える
1

短い形式の if を使用する

IsChecked ? 1: 0
于 2012-10-16T11:46:46.323 に答える