0

我想使用 DataTrigger 更改 XAML 中按钮的内容。有条件地我需要更改按钮的文本。但是,如果 Button 最初有文本,则文本不会更改。使其工作的唯一方法是不设置Content,或者使用触发器设置它。

所以如果我有

<Button Content="Some text" />

触发器不会更改按钮文本。

如果我有

<Button />

或者

<Button>
    <Button.Style>
        <Style TargetType="Button">
            <Setter Property="Content" Value="Some text" />
        </Style>
    </Button.Style>
</Button>

触发器有效。

为什么?

4

1 回答 1

1

这是因为 DepedencyProperty 优先。见这里:http: //msdn.microsoft.com/en-us/library/ms743230.aspx

本地值的优先级高于触发器。这意味着本地值将“优先于”触发值

当您在样式中设置它时,它会更改优先级。触发器优先于样式设置器,这就是它按预期工作的原因。

于 2012-06-12T17:36:34.767 回答