wpf - 将 <object property ="{StaticResource key}".../> 中的 Key 绑定(bind)到一个值

标签 wpf xaml data-binding mvvm staticresource

在 WPF 中,是否可以将“{StaticResource key}”中的键绑定(bind)到变量。

例如。我有一个变量 执行状态 与州 活跃已完成 .

在我的 ResourceDictionary 我有

<Style TargetType="{x:Type TextBlock}" x:Key="Active">
        <Setter Property="Foreground" Value="Yellow"/>
    </Style>
    <Style TargetType="{x:Type TextBlock}" x:Key="Completed">
        <Setter Property="Foreground" Value="Green"/>
    </Style>

而不是拥有
<TextBlock Style="{StaticResource Active}"/>

我想要类似的东西
<TextBlock Style="{StaticResource {Binding ExecutionState}}"/>

因此,如果状态改变,文本颜色也会改变。
这样的事情甚至可能吗?
我可以使用触发器实现想要的功能,但我必须在多个地方重用它,而且我不想弄乱我的代码。
我也在使用 MVVM。

谢谢

最佳答案

不,这是不可能的。绑定(bind)只能在 DependencyProperty 上设置。 StaticResource 不是 DependencyObject,因此没有 DependencyProperty。您应该使用触发器或开发自己的附加行为。

关于wpf - 将 <object property ="{StaticResource key}".../> 中的 Key 绑定(bind)到一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10188909/

相关文章:

wpf - 当鼠标指针或键盘(箭头键即 -> 和 <-)光标放置时从 wPF 组合框中获取值(C#3.0)

c# - XAML 编辑器一直显示 : The member is not recognized or is not accessible

silverlight - 如何在 Silverlight 中使用 DataTemplate 显示单个项目?

wpf - 如何刷新 WPF DataGrid?

c# - WPF DataGrid - 基于行动态绑定(bind) DataGridComboBoxColumn

c# - RichTextBox 垂直显示文本

c# - 如何将网格添加到我的组合框并显示 observableCollection 数据?

c# - 自定义控件内的控件不可移动

c# - 我可以在控件的内容属性中使用符号 "<-"吗?

c# - 为什么我不能在应用程序启动时调用 'new Window().ShowDialog()' 2 次?