WinFx数据绑定入门指南
1. WinFx数据绑定基础
在之前看到的一些简单的WinFx应用程序示例中,并没有涉及到数据相关的操作。实际上,WinFx拥有丰富的模型来设置数据绑定控件,其工作方式与Windows Forms有所不同,旨在更加灵活且减少代码量。
WinFx元素支持数据绑定上下文的概念,该上下文会自动向下传递给子元素,从应用程序到窗口对象,再到子控件。如果有一个数据源需要绑定到多个控件,甚至可能分布在不同的窗口中,我们可以建立一个数据上下文,在一处初始化并设置数据源,它会自动级联到元素树中未显式设置自身上下文的子元素。
WinFx的绑定方法与Windows Forms中的BindingSource对象有些相似,它们都为多个控件提供了一个统一的数据绑定源。但两者在声明和初始化绑定的方式以及绑定传递到其他元素的方式上存在明显差异。在Windows Forms中,需要显式地设置控件的DataSource属性指向一个BindingSource,或者向控件的DataBindings集合添加一个Binding对象,以建立特定BindingSource与控件之间的关联,同时还需要指定要绑定的数据源中的数据成员路径。而在WinFx绑定中,只需要指定所需的数据上下文中的路径,控件会自动获取其父元素树中设置的数据上下文(数据源)。
例如,在一个窗口中有一个网格,网格中包含一组文本框,这些文本框要绑定到客户数据行的各个字段。可以将窗口的数据上下文设置为客户集合,然后在控件级别指定绑定,以确定每个字段的路径(如CompanyName、ContactName等)。由于文本框一次只显示一个值,因此会显示窗口级别设置的数据源中当前记录的值。
还可以在网格级