Silverlight数据绑定:将属性绑定到另一个或多个属性的表达式

3

我一直在使用Flex进行Flash开发,而Flex中的数据绑定真的非常强大。

现在我正在开展一个Silverlight项目。我只想将控件属性绑定到另一个或多个属性的表达式上。例如:

<Button Name="myButton" Background="{Binding myButton.IsEnabled ? #AABBCC : #DDEEFF}" />

这是一个非常简单且常见的案例。当按钮启用时,我只想让myButton.Background#AABBCC,禁用时为#DDEEFF。当然,我还希望将我的Background属性绑定到其他控件的多个属性上。
在Flex中,这非常简单。但我不知道如何在Silverlight中实现。
谢谢。
Peter 2012年1月3日的编辑:
在Silverlight 5发布和上述美好文章之后,我的需求可以通过转换器(继承MarkupExtension并实现IMultiValueConverter)来完成。 http://www.codeproject.com/KB/silverlight/SilverlightMultiBinding.aspx
1个回答

0
在布尔值转颜色的情况下,您需要一个转换器。(来自MSDN)
对于多绑定的情况,我的理解是您无法绑定到多个值或属性
您将不得不绑定到一个属性并让该属性解析您需要的值。 (您始终可以在运行时更改绑定的属性,但一次只能绑定一个属性)

1
这对于数据绑定来说非常有限。如果我不能绑定到多个值或属性,我就必须实现IsEnabledChanged事件的处理程序。 - Peter Lee
你说得对。你有了解命令吗?特别是CanExecute方法。http://msdn.microsoft.com/zh-cn/library/ff921126(v=pandp.20).aspx - mcabral

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接