0

我正在尝试将 aDataTrigger应用于 a Button,它取决于 a 的当前选定项中的属性TreeView。这个想法是我想Button根据所选项目的属性更改 a 的文本。

我所拥有的看起来像这样:

<Button x:Name="m_AddObject" Margin="192.708,0.909,6,6.363" Click="AddObject_Click" >
    <DataTrigger Binding="{Binding ElementName=ObjectTreeView, Path=SelectedItem.Removable}" Value="true">
        <Setter TargetName="m_AddObject" Property="Content" Value="Remove" />
    </DataTrigger>
</Button>

但我无法编译它。Setter 抱怨“内容”无效,因为它没有合格的类型名称,但如果我将其更改为“Button.Content”,它就会抱怨“对象引用未设置为对象的实例”。

我也试过:

<Setter TargetName="m_AddObject.Content" Value="Remove" />

虽然编译,它也没有工作。

我难住了。

有任何想法吗?

谢谢!

4

1 回答 1

1

DataTriggers 应该在按钮的 Style 中定义。您在上面尝试做的基本上是使用 DataTriggers 作为按钮的“标签”(如 WPF 所说的“内容”)(而不是“确定”)。

这是临时的,所以它可能不完全正确,但它更接近你想要的:

<Button x:Name="m_AddObject"
        Margin="192.708,0.909,6,6.363"
        Click="AddObject_Click">
    <Button.Style>
        <Style TargetType="{x:Type Button}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding ElementName=ObjectTreeView, Path=SelectedItem.Removable}" Value="True">
                    <Setter Property="Content" Value="Remove" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Button.Style>
</Button>
于 2009-05-13T22:17:41.350 回答