0

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

当前 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它使用 DependencyProperty 禁用按钮,并使用布尔可见性转换器将其绑定到按钮的可见性,因此按钮不仅被禁用,而且还被折叠。

4

2 回答 2

2

我想风格看起来像这样:

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

那不行吗?

于 2011-04-22T17:18:27.447 回答
1
<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>
于 2011-04-22T17:16:36.110 回答