无法命令绑定切换按钮作为控件模板

Ane*_*ees 0 wpf xaml templates mvvm

这是代码:

   <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>
Run Code Online (Sandbox Code Playgroud)

在MainWindowViewModel中:我有以下命令注册

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

    }
Run Code Online (Sandbox Code Playgroud)

按钮单击从不触发命令绑定.任何帮助,将不胜感激.

stu*_*bax 5

你忘了你的风格,你必须定义Command一个ToggleButton

<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>
Run Code Online (Sandbox Code Playgroud)