gpt4 book ai didi

.net - 在 ResourceDictionary 中使用 DataTrigger 定义样式,但在 View 中指定 DataTrigger 绑定(bind)路径

转载 作者:行者123 更新时间:2023-12-02 09:43:25 26 4
gpt4 key购买 nike

我想使用带有 DataTrigger 的样式来定义 ResourceDictionary 中控件的一般外观。

是否可以在 View 中指定DataTrigger绑定(bind)路径?如果没有,是否有一些巧妙的替代方案可以实现我的目标?

我的目标是重用图形定义(包括触发器),但每次使用时将触发器链接到不同的数据源。

样式示例:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<Style TargetType="Rectangle" x:Key="LedBehavior">
<Setter Property="Fill" Value="LightGray"/>
<Style.Triggers>
<DataTrigger Binding="{Binding **DefineThisPathInTheView**}" Value="True">
<Setter Property="Fill" Value="DarkGreen"/>
</DataTrigger>
</Style.Triggers>
</Style>

</ResourceDictionary>

在 View 中我希望使用这种风格有点像这样:

<Rectangle Width="50" Height="50" 
Style="{StaticResource LedBehavior}"
DataTriggerBindingPath="**PropertyInViewModel**"/>

谢谢!

最佳答案

这个解决方案看起来非常简洁并且不太困难。

我必须将(在本例中)我的 RectangleDataContext 绑定(bind)到我想要的属性。然后我必须将我的样式中的触发器绑定(bind)到 DataContext

下面的工作示例。

样式示例:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<Style TargetType="Rectangle" x:Key="LedBehavior">
<Setter Property="Fill" Value="LightGray"/>
<Style.Triggers>
<DataTrigger Binding="{Binding}" Value="True">
<Setter Property="Fill" Value="DarkGreen"/>
</DataTrigger>
</Style.Triggers>
</Style>

</ResourceDictionary>

示例(部分) View :

<Rectangle Width="50" Height="50" 
Style="{StaticResource LedBehavior}"
DataContext="{Binding PropertyInViewModel}"/>

希望对大家有帮助!

关于.net - 在 ResourceDictionary 中使用 DataTrigger 定义样式,但在 View 中指定 DataTrigger 绑定(bind)路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42861543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com