【问题标题】:WPF Binding to alternate static resourceWPF 绑定到备用静态资源
【发布时间】:2013-12-05 19:08:48
【问题描述】:

我正在尝试根据项目的状态将静态资源绑定到视图模型项目。视图中有一个项目列表。

ViewModel 有一个布尔属性 State。 View 有一个 ItemsControl 绑定到 ObservableCollection

我为每个所需项目定义了两个资源字符串。
如何根据 State 的值显示正确的字符串?

谢谢, 埃里克

【问题讨论】:

    标签: c# wpf binding staticresource


    【解决方案1】:

    要使用静态资源,您可以使用ObjectDataProvider。并根据布尔值将其绑定到您的视图,您可以使用正确的Converter

    【讨论】:

    • 我认为我的示例过于简化了。但你让我想到了不同的方向。
    【解决方案2】:

    将绑定与转换器一起使用。

    这是一个例子:

    <config:BoolToBrushConverter x:Key="Bool2Brush"
                          TrueBrush="{StaticResource OKStatusBrush}"
                          FalseBrush="{StaticResource ErrorStatusBrush}" />
    
    <TextBlock Name="tbx1" Grid.Row="2" Grid.Column="1" 
        Background="{Binding Path=State, Converter={StaticResource Bool2Brush}}"...
    

    了解如何让您的自定义转换器接受资源?只需在资源中定义转换器并引用您需要的两个。然后让绑定知道你的转换器。

    【讨论】:

    • 这就是我最终所做的。我真正想要的是能够做到这一点,但使用视图模型绑定来确定静态资源的价值。
    • 那么您将需要 ContentTemplateSelector 来根据内容选择您的模板。名字说明一切哈哈msdn.microsoft.com/en-us/library/…
    猜你喜欢
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 2013-11-15
    相关资源
    最近更新 更多