学习Silverlight 4数据绑定的基础知识

时间:2010-05-14 23:08:52

标签: data-binding silverlight-4.0

我刚刚开始使用Silverlight(也没有WPF经验),并且很难找到提供数据绑定的完整解释的源代码。绝对不缺教程(从Silverlight.net或Scott Gu的博客开始),但我发现的一切都是“通过示例”。

是否有资源解释了Silverlight中数据绑定的工作原理,从基础/概念角度,并提供数据绑定功能的端到端覆盖?

对于更基本的信息来源的渴望是由今天下午在审阅教程和编写示例应用程序时提出的一些问题所驱动的,例如:

  • 为什么我不能像这样绑定滑块的值?:Value =“{Binding = Age,Mode = TwoWay}”其中Age指的是对象数据上下文中的 int 属性我在代码隐藏中绑定(Visual Studio错误消息是预期'[]'
  • 如何在VS 2010中使用DataContext属性?什么是路径,相对来源,静态来源......?

1 个答案:

答案 0 :(得分:1)

Silverlight的数据绑定引擎与WPF非常相似。这里有一个体面的概述http://msdn.microsoft.com/en-us/library/ms752347.aspx

回答您的具体问题:

  • 你应该能够做到这一点。我刚刚在Blend中创建了一个小项目来试试这个,它运行得很好。有一点棘手的是,数据绑定引擎实际上是在内部为double和int进行转换(因为Slider.Value是双精度)。

  • DataContext用于设置树中该元素下面的任何绑定表达式的上下文。默认情况下,路径相对于DataContext。例如,如果使用DataContext="{Binding RelativeSource={RelativeSource Self}}"将根元素上的DataContext设置为自身,则可以添加类似<TextBlock Text="{Binding Width}" />的内容,以添加显示根元素宽度的TextBlock。 Path只是一个隐含的参数,所以你可以做"{Binding Path=Width}",它会做同样的事情。

  • 相对来源允许您选择不使用DataContext,而是选择其他来源,例如{RelativeSource Self}中的您自己。