在我的wpf应用程序中,我有时会发现自己想要绑定到涉及两个属性的逻辑表达式的结果。比方说,我有一个这样的类:
class A {
public bool A { get; set;}
public bool B { get; set;}
}
在我的xaml中,我想绑定一些依赖于涉及A和B的逻辑表达式的东西(例如A&& B的结果)。我意识到我可以创建一个属性C,在其中存储此操作的结果然后绑定到该属性,但感觉这是错误的方法。
是否还有其他方法可以做到这一点?一直未能找到答案。
答案 0 :(得分:0)
我意识到我可以创建一个属性C,在其中我存储了这个操作的结果,然后绑定到该属性,但感觉这是错误的方法。
有两种主要方法可以达到你想要的效果,但它们都没有错。 PropertyC
方法在某些情况下可能更好,特别是当您的逻辑表达式更复杂时。它实现起来非常简单,如果它是您的视图模型,那么它也可以进行测试。
但是,另一种方法是将MultiBinding
与IMultiValueConverter
结合使用,就像评论中提到的@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>