0

这是代码:

   <Window.DataContext>
    <local:MainWindowViewModel />
</Window.DataContext>

<Window.Resources>

    <Style x:Key="RadioToggleButtonStyle" TargetType="RadioButton">
        <Setter Property="SnapsToDevicePixels" Value="true" />
        <Setter Property="OverridesDefaultStyle" Value="true" />
        <Setter Property="Background" Value="Transparent" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type RadioButton}">
                    <ToggleButton Content="{Binding Content, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}" IsChecked="{Binding IsChecked, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}" />
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Setter Property="Width" Value="150" />
        <Setter Property="Height" Value="25" />
        <Setter Property="VerticalAlignment" Value="Center" />
    </Style>

</Window.Resources>

<Grid>
    <RadioButton Name="radioButton1"
                 Height="29"
                 Margin="193,195,0,0"
                 HorizontalAlignment="Left"
                 VerticalAlignment="Top"
                 **Command="{Binding Path=RadioClickCommand}"**
                 Content="RadioButton"
                 Style="{StaticResource RadioToggleButtonStyle}" />

</Grid>

在 MainWindowViewModel :我有以下命令注册

 public ICommand RadioClickCommand
    {
        get { return new RelayCommand(RadioClickExecute); }
    }
 private void RadioClickExecute()
    {

    }

按钮单击永远不会触发命令绑定。任何帮助,将不胜感激。

4

1 回答 1

5

您忘记了您必须定义 a Commandof aToggleButton

<Setter Property="Template">
    <Setter.Value>
        <ControlTemplate TargetType="{x:Type RadioButton}">
            <ToggleButton Content="{Binding Content, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}" IsChecked="{Binding IsChecked, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
                          Command="{Binding Command, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}"/>
        </ControlTemplate>
    </Setter.Value>
</Setter>
于 2012-04-24T08:08:45.437 回答