C# 复选框模板

C# 复选框模板,c#,.net,wpf,C#,.net,Wpf,你好 我正在尝试创建一个简单的复选框模板,但是经过无数个小时的尝试,我偶然发现了一个问题。 自定义模板只是一个网格,包含两行,一个标签,以及复选框 代码如下: <Style x:Key="OptionCheckBoxStyle" TargetType="{x:Type local:OptionCheckBox}" BasedOn="{StaticResource {x:Type CheckBox}}"> <Setter Property="Temp

你好

我正在尝试创建一个简单的复选框模板,但是经过无数个小时的尝试,我偶然发现了一个问题。 自定义模板只是一个
网格,包含两行
一个标签
,以及
复选框

代码如下:

<Style x:Key="OptionCheckBoxStyle" TargetType="{x:Type local:OptionCheckBox}"
       BasedOn="{StaticResource {x:Type CheckBox}}">
        <Setter Property="Template">
        <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:OptionCheckBox}">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition/>
                            <ColumnDefinition/>
                        </Grid.ColumnDefinitions>
                        <Label Content="{TemplateBinding Label}" 
                               ToolTip="{TemplateBinding ToolTip}" >
                        </Label>
                        <CheckBox x:Name="CheckMark" Grid.Column="1" 
                                  Margin="5,0,0,0" />
                    </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

问题是将此元素的IsChecked属性绑定到CheckMark元素的IsChecked属性。我尝试了以下方法(以及其他方法的组合)


有人知道这项工作所需的绑定吗?(基本上是绑定到子元素)

注意:我之所以不在整个绘制过程中模拟复选框,是因为我们运行了不同的主题,这些主题看起来与普通复选框不同

问候,,
Dan

好的复选框是双向的,所以您最好将复选标记IsChecked绑定到IsChecked{Binding Path=IsChecked,RelativeSource={RelativeSource ANcestorType={x:Type local:OptioCheckBox}上,这是有效的。非常感谢您
    <Setter Property="IsChecked" Value="{Binding Path=IsChecked,
            ElementName=CheckMark}"/>