使用样式更改按钮的内容

时间:2014-03-05 15:43:30

标签: wpf xaml styles

我正在创建一个包含两种类型用户的应用程序;员工,管理员。每个用户都有自己的权限。例如,管理员可以添加,编辑,删除等;而工作人员只能查看。目前在我的应用中,我使用ListView来显示数据,然后使用DataTemplate我在其中设置按钮,如下所示。

enter image description here

但是,我想更改编辑content的{​​{1}}以显示视图,而不是编辑用户是否为员工用户。我尝试实现以下代码,但它似乎没有改变。

button

我对创建<Button Content="Edit" Command="{Binding ShowEditCommand}" Width="50"> <Button.Style> <Style TargetType="{x:Type Button}" BasedOn="{StaticResource MetroButton}"> <Setter Property="Content" Value="View" /> <Style.Triggers> <DataTrigger Binding="{Binding Role}"> <DataTrigger.Value> <enum:EnumPermission>Admin</enum:EnumPermission> </DataTrigger.Value> <Setter Property="Content" Value="Edit"/> </DataTrigger> </Style.Triggers> </Style> </Button.Style> </Button> 并不是很擅长,因此我会对我做错了什么以及如何改变它有所了解。提前致谢。

修改 最初,正如所指出的,我忘了从按钮中删除`Content =“Edit”。但是,当我删除它时,样式仍然无法完全发挥作用。

2 个答案:

答案 0 :(得分:0)

Content="Edit"定义

中删除Button
<Button Content="Edit" ...

Style.Trigger将无法根据Dependency Property Setting Precedence List覆盖该值。您可以将Style中的默认值设置为

<Setter Property="Content" Value="View" />

答案 1 :(得分:0)

首先只是因为您不应该更改样式中的内容,您可以将内容绑定到属性并更改该属性值
解决这个问题只需从第一行中删除Content =“Edit”