如何根据 ViewModel 中的值将条件效果应用于按钮?
How can I apply a conditional effect to a button based on value in the ViewModel?
我可以使用类似这样的方法轻松地为按钮添加一点发光效果:
<Button ...>
<Button.Effect>
<DropShadowEffect ... />
</Button.Effect>
</Button>
如何根据 ViewModel 中的值有条件地应用效果?
基本上,如果最近几天添加了新文档,我希望按钮 "glow"。我可以提供 bool 值,指示是否需要发光作为 ViewModel 的 属性。
我正在考虑只创建两个附加到同一个命令的按钮,根据 ViewModel 隐藏一个并显示另一个。那会起作用,但似乎有点蛮力。
想法?
谢谢。
J
我认为你真的需要一个 DataTrigger
像下面一样,
<Style.Triggers>
<DataTrigger Binding="{Binding PropertyFromViewModel}" Value="True">
<Setter .../>
<Setter .../>
</DataTrigger>
</Style.Triggers>
例子
<Button Content="Hello" Command={Binding YourCommand}>
<Button.Style>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding Glow}" Value="True">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect Color="Blue"/>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
您需要使用 DataTrigger
为您的按钮创建样式,如下所示:
<Button Content="Hello" Command="{Binding HelloCommand}">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding SomeCondition}" Value="True">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect />
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
请注意,SomeCondition
在您的视图模型中是一个布尔值 属性。只有当 SomeCondition
为 true
时,才会应用效果。
我可以使用类似这样的方法轻松地为按钮添加一点发光效果:
<Button ...>
<Button.Effect>
<DropShadowEffect ... />
</Button.Effect>
</Button>
如何根据 ViewModel 中的值有条件地应用效果?
基本上,如果最近几天添加了新文档,我希望按钮 "glow"。我可以提供 bool 值,指示是否需要发光作为 ViewModel 的 属性。
我正在考虑只创建两个附加到同一个命令的按钮,根据 ViewModel 隐藏一个并显示另一个。那会起作用,但似乎有点蛮力。
想法?
谢谢。
J
我认为你真的需要一个 DataTrigger
像下面一样,
<Style.Triggers>
<DataTrigger Binding="{Binding PropertyFromViewModel}" Value="True">
<Setter .../>
<Setter .../>
</DataTrigger>
</Style.Triggers>
例子
<Button Content="Hello" Command={Binding YourCommand}>
<Button.Style>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding Glow}" Value="True">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect Color="Blue"/>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
您需要使用 DataTrigger
为您的按钮创建样式,如下所示:
<Button Content="Hello" Command="{Binding HelloCommand}">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding SomeCondition}" Value="True">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect />
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
请注意,SomeCondition
在您的视图模型中是一个布尔值 属性。只有当 SomeCondition
为 true
时,才会应用效果。