0

所以我有一个单选按钮,我想根据是否单击按钮将其从未选中更改为选中。所以我拥有的 XAML 代码是:

<RadioButton GroupName="rdoExchange" Grid.Row="2" Grid.Column="0" x:Name="PauseRadioButton"  Command="{Binding PauseCommand}" IsChecked="{Binding Path=check, Mode=TwoWay}" Margin="3"/>

以及查看模型代码:

public string check = "True";

 public void Reset(object obj)
        {

            check = "True";
        }

  private ICommand m_PauseCommand;
    public ICommand PauseCommand
    {
        get
        {
            return m_PauseCommand;
        }
        set
        {
            m_PauseCommand = value;
        }
    }

  private ICommand m_ResetCommand;
        public ICommand ResetCommand
        {
            get
            {
                return m_ResetCommand;
            }
            set
            {
                m_ResetCommand = value;
            }
        }

private void SetProperty<T>(ref T field, T value, [CallerMemberName] string name = "")
        {
            if (!EqualityComparer<T>.Default.Equals(field, value))
            {
                field = value;
                var handler = PropertyChanged;
                if (handler != null)
                {
                    handler(this, new PropertyChangedEventArgs(name));
                }
            }
        }
    }

我省略了中继命令代码和其他几个我认为与解决问题无关的部分。

4

1 回答 1

1

像这样的东西会起作用吗?

XAML:

    <RadioButton GroupName="rdoExchange" IsChecked="{Binding Path=OptionOneChecked, Mode=TwoWay}"/>
    <Button Command="{Binding ToggleOptionOne}" Height="20" />

查看型号:

public class ViewModel: NotificationObject
{
     private bool _optionOneChecked;
    public bool OptionOneChecked
    {
        get { return _optionOneChecked; }
        set
        {
            if (value.Equals(_optionOneChecked)) return;
            _optionOneChecked = value;
            RaisePropertyChanged("OptionOneChecked");
        }
    }

    public ICommand ToggleOptionOne
    {
        get { return new DelegateCommand(() => OptionOneChecked = !OptionOneChecked); }
    }
}

使用NotificationObjectPRISM NuGet 包中的类。

于 2013-08-28T16:26:11.217 回答