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

发布于 2024-12-04 05:11:43 字数 821 浏览 0 评论 0原文

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

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

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

这实际上是一个非常简单且常见的案例。我只想当按钮启用时我的 myButton.Background#AABBCC ,如果禁用则为 #DDEEFF

当然,我还想将我的 Background 属性绑定到其他控件的多个属性。

在 Flex 中,这非常简单。但我不知道如何在 Silverlight 中做到这一点。

谢谢。

Peter

于 2012 年 1 月 3 日编辑

http://www.codeproject.com/KB/silverlight/ SilverlightMultiBinding.aspx 在 Silverlight 5 发布和上面的好文章之后。我的需求可以通过转换器来完成(继承 MarkupExtension 并实现 IMultiValueConverter)。

I've been using Flex for Flash development. And the data binding in Flex is really powerful.

Now I'm working on a Silverlight project. I just want to bind a control's property to an expression of another one or multiple properties. For example:

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

It's actually a very simple and common case. I just want to my myButton.Background to be #AABBCC when the button is enabled, and #DDEEFF if disabled.

Of course, I also want to bind my Background property to multiple properties of other control(s).

In Flex, it's very simple. But I don't know how to do it in Silverlight.

Thanks.

Peter

Edits on Jan 3, 2012

http://www.codeproject.com/KB/silverlight/SilverlightMultiBinding.aspx
After the Silverlight 5 release and the above nice article. My needs can be done with a converter (inherits MarkupExtension and implements IMultiValueConverter).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

红墙和绿瓦 2024-12-11 05:11:43

在布尔到颜色的情况下,您需要 转换器。 (MSDN)

对于多重绑定情况,我的理解是,您不能绑定到多个值或属性

您必须只绑定到一个属性,然后让该属性解析您需要的值。
(您始终可以在运行时更改绑定到的属性,但一次只能绑定到一个属性)

In the bool to color case, you need a Converter. (MSDN)

For the multiple binding case it is my understanding that you can't bind to multiple values or properties.

You will have to bind to just one property en let that property resolve the value you need.
(You can always change the property you are bound to at runtime, but you can only bind to one property at a time)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文