【问题标题】:WPF Radio Button / MVVM Binding IssuesWPF 单选按钮/MVVM 绑定问题
【发布时间】:2014-06-19 14:55:06
【问题描述】:

我已经搜索并发现了几个建议的解决方案,但我仍然无法完成这项工作:

我正在使用 .Net 4.5、WPF、MVVM

我想实现三个单选按钮以允许用户选择要查看的方法(主要、次要、第三)。用户界面,如下所示:

[ 1 ] [ 2 ] [ 3 ](我有一张图片,在这里,但显然,除非我有 10 个代表,否则我不能发布它......)

我的 XAML:

<StackPanel Grid.Column="4" Orientation="Horizontal">
  <RadioButton x:Name="rb1" Style="{StaticResource Radio1Button}" Command="{Binding Path=Select1ReceivingMethodCommand}" IsChecked="{Binding Path=ReceivingMethod1IsSelected}" />
  <RadioButton x:Name="rb2" Style="{StaticResource Radio2Button}" Command="{Binding Path=Select2ReceivingMethodCommand}" IsChecked="{Binding Path=ReceivingMethod2IsSelected}" />
  <RadioButton x:Name="rb3" Style="{StaticResource Radio3Button}" Command="{Binding Path=Select3ReceivingMethodCommand}" IsChecked="{Binding Path=ReceivingMethod3IsSelected}" />
</StackPanel>

Radio1Button 的样式:(显然其他类似)

<Style x:Key="Radio1Button" TargetType="{x:Type RadioButton}">
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type RadioButton}">
        <Image Name="Button_Image" Source="/Resources/1.Normal.png" SnapsToDevicePixels="True" Width="20" Height="20" />
        <ControlTemplate.Triggers>
          <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Source" Value="/Resources/1.Hover.png" TargetName="Button_Image" />
          </Trigger>
          <Trigger Property="IsEnabled" Value="False">
            <Setter Property="Source" Value="/Resources/1.Disabled.png" TargetName="Button_Image" />
          </Trigger>
          <Trigger Property="IsChecked" Value="True">
            <Setter Property="Source" Value="/Resources/1.Pressed.png" TargetName="Button_Image" />
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

我的视图模型公开了每个单选按钮状态的布尔属性,如每个单选按钮的 IsChecked 属性中所示。如前所述,我也定义了命令。

由于某种原因,绑定到每个单选按钮的 IsChecked 属性的 bool 属性永远不会被调用。 (既不是 getter 也不是 setter)。页面上有各种各样的其他控件,绑定对它们来说就像花花公子一样工作。 UI 位似乎工作正常。正确的按钮图像显示了按钮的状态,并且它们相互排他地发挥作用,正如预期的那样。但是我的视图模型没有交互。

我试过拉出 Command 绑定,想知道它们是否妨碍了我,但没有任何改变。我尝试过使用转换器,但从未调用过转换器。

如果没有分配方法,我还希望禁用一个按钮。 (即,如果只定义了 Primary 和 Secondary 方法,则应该禁用“3”单选按钮。我希望 Command 绑定对此有所帮助。)

我错过了什么?实现这一点的最佳方法是什么? (单选按钮以外的控件?)

【问题讨论】:

    标签: wpf xaml data-binding mvvm radio-button


    【解决方案1】:

    它可以在我的电脑上运行,也许您需要检查您的数据源或查看 Visual Studio 的输出窗口。

    【讨论】:

      【解决方案2】:

      没关系...有一个遗留的 DataContext 分配妨碍了。一旦我清理了它,它就按预期工作了。

      很抱歉打扰...就像你一样...这里没什么可看的...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-08
        • 2015-06-07
        • 1970-01-01
        • 2011-08-17
        相关资源
        最近更新 更多