多个按钮上的WPF样式和模板?

多个按钮上的WPF样式和模板?,wpf,binding,styles,controltemplate,relativesource,Wpf,Binding,Styles,Controltemplate,Relativesource,我似乎无法获得正确的组合以达到预期效果: 当前XAML: <Button Content="Foo" prism:Click.Command="{Binding FooCommand}" Visibility="{Binding IsEnabled, RelativeSource={RelativeSource Self}, Converter={ncon:VisibilityBooleanConverter}}" /> <Button Content="Bar

我似乎无法获得正确的组合以达到预期效果:

当前XAML:

<Button Content="Foo" prism:Click.Command="{Binding FooCommand}"
        Visibility="{Binding IsEnabled, RelativeSource={RelativeSource Self}, Converter={ncon:VisibilityBooleanConverter}}" />
<Button Content="Bar" prism:Click.Command="{Binding BarCommand}"
        Visibility="{Binding IsEnabled, RelativeSource={RelativeSource Self}, Converter={ncon:VisibilityBooleanConverter}}" />

我想提取出
Visibility=“{Binding IsEnabled,RelativeSource={RelativeSource Self},Converter={ncon:VisibilityBooleanConverter}}”
作为一种样式应用于所有按钮(在此UserControl资源中)。我似乎无法找到正确的组合来实现这一点

基本上,它所做的不是仅仅基于
ICommand.CanExecute
禁用按钮,而是使用布尔可视性转换器将依赖性属性绑定到按钮的可视性,这样按钮不仅被禁用,而且被折叠。


<Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
    <Style.Triggers>
        <DataTrigger Binding="{Binding IsEnabled, RelativeSource={RelativeSource Self}, Converter={ncon:VisibilityBooleanConverter}}" Value="Visible">
            <Setter Property="Visibility" Value="Visible"/>
        </DataTrigger>
    </Style.Triggers>
</Style>

我想样式应该是这样的:

<Style TargetType="{x:Type Button}">
    <Setter Property="Visibility"
            Value="{Binding IsEnabled, RelativeSource={RelativeSource Self}, Converter={ncon:VisibilityBooleanConverter}}"/>
</Style>


这不管用吗?

我想风格应该是这样的:

<Style TargetType="{x:Type Button}">
    <Setter Property="Visibility"
            Value="{Binding IsEnabled, RelativeSource={RelativeSource Self}, Converter={ncon:VisibilityBooleanConverter}}"/>
</Style>


那不管用吗?

管用。。。我猜我犯了一个错误,我试图使用TemplateBinding来避免使用RelativeSource,但这不起作用。这是有效的。。。我想我犯了一个错误,我试图使用TemplateBinding来避免使用RelativeSource,但它不起作用。