WPF单选按钮/ MVVM绑定问题

时间:2014-05-02 20:22:06

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

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

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

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

[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>

我的视图模型公开了每个单选按钮状态的bool属性,如每个单元格的IsChecked属性所示。如上所示,我也定义了命令。

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

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

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

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

2 个答案:

答案 0 :(得分:0)

它可以在我的电脑上运行,也许您需要检查您的DataSource或从visual studio查看输出窗口。

答案 1 :(得分:0)

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

很抱歉打扰......因为你......没什么可看的......