【问题标题】:RadioButton IsChecked binding in View Model视图模型中的 RadioButton IsChecked 绑定
【发布时间】:2012-10-23 04:42:49
【问题描述】:

我知道这个话题已经讨论过很多次了,但我仍然无法让它发挥作用。我有 3 个 RadioButtons 放在 StackPanel 中;我正在尝试将他们的 IsChecked 绑定到视图模型中的某个变量。这是我所做的:

在视图中的 XAML 文件中:

  <RadioButton Name="rbExpReview"
                             IsChecked="{Binding Path=rbExpReviewIsChecked, Mode=TwoWay}"
                             Foreground="White">
                    <RadioButton.Content>
                        <Label Content="Experiment Review"
                               HorizontalContentAlignment="Center"
                               VerticalContentAlignment="Center" />
                    </RadioButton.Content>
  </RadioButton>

在视图模型中,我声明了一个变量:

_rbExpReviewIsChecked = true;

以及响应 RadioButton 的 IsChecked 的属性:

public bool rbExpReviewIsChecked
        {
            get
            {
                return _rbExpReviewIsChecked;
            }
            set
            {

                _rbExpReviewIsChecked = value;
                OnPropertyChanged("rbExpReviewIsChecked");
            }
        }

但是,当我选中和取消选中按钮时,视图模型代码中没有响应(没有命中断点。)所以我想知道我的绑定有什么问题?还是别的什么? 我是 XAML 的新手,所以任何指针都值得赞赏。 尼克

【问题讨论】:

    标签: xaml binding radio-button viewmodel ischecked


    【解决方案1】:

    您的绑定语法是正确的。您的属性看起来是正确的。那只剩下一种可能性:DataContext。

    Visual Studio 中的“输出”窗口会发生什么?如果您的 DataContext 设置不正确,它应该会给您一个绑定错误。

    DataContext 可以从 Parent 继承,也可以设置。你的 DataContext 是什么?

    【讨论】:

    • 你是对的。 DataContext 未正确附加。我已经解决了这个问题。谢谢。
    【解决方案2】:

    您的绑定视图->ViewModel 在哪里?

    【讨论】:

    • View 文件夹下的 XAML 文件名为 TooBarView.xaml; C# 代码在 View Model 文件夹下命名为 ImageReviewViewModel.cs。 Model 文件夹中有一个 ImageReview.cs。 ImageReviewViewModel.cs 中的大部分内容都与根文件夹中的 MainWindow.xaml 相关。
    • 那么您能告诉我您将 View 连接到 ViewModel 的代码吗?或者,也许您使用某种 MVVM 框架?
    猜你喜欢
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    相关资源
    最近更新 更多