绑定到涉及两个属性的逻辑

时间:2014-03-12 15:51:43

标签: wpf xaml binding

在我的wpf应用程序中,我有时会发现自己想要绑定到涉及两个属性的逻辑表达式的结果。比方说,我有一个这样的类:

class A {
    public bool A { get; set;}
    public bool B { get; set;}
}

在我的xaml中,我想绑定一些依赖于涉及A和B的逻辑表达式的东西(例如A&& B的结果)。我意识到我可以创建一个属性C,在其中存储此操作的结果然后绑定到该属性,但感觉这是错误的方法。

是否还有其他方法可以做到这一点?一直未能找到答案。

1 个答案:

答案 0 :(得分:0)

  

我意识到我可以创建一个属性C,在其中我存储了这个操作的结果,然后绑定到该属性,但感觉这是错误的方法。

有两种主要方法可以达到你想要的效果,但它们都没有错。 PropertyC方法在某些情况下可能更好,特别是当您的逻辑表达式更复杂时。它实现起来非常简单,如果它是您的视图模型,那么它也可以进行测试。

但是,另一种方法是将MultiBindingIMultiValueConverter结合使用,就像评论中提到的@Viv一样。以下是MSDN上链接的MultiBinding类页面的示例:

<TextBlock Name="textBox2" DataContext="{StaticResource NameListData}">
    <TextBlock.Text>
        <MultiBinding Converter="{StaticResource myNameConverter}"
                  ConverterParameter="FormatLastFirst">
            <Binding Path="FirstName"/>
            <Binding Path="LastName"/>
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>