C# 数据绑定 静态绑定到外部对象
通过在XAML中将某个类指定为一项资源,就可以动态创建对象实例。具体的方法就是首先在XAML中添加相应的名称空间,以便可以找到这个类,然后在XAML的某个元素中将类声明为资源。
可在希望进行数据绑定的对象的父元素中创建资源引用。
试一试丨创建静态数据绑定:KarliCards,Gui\NumberOfPlayers.cs
在本例中,将新建一个用来保存Options窗口中ComboBox数据的新类,并将其与该控件绑定起来。
(1)在项目中新建一个类,并将其命名为NumberOfPlayers.cs。
(2)添加如下代码:
using System.Collections.ObjectModel;
namespace KarliCards.Gui
{
public class NumberOfPlayers : ObservableCollection<int>
{
public NumberOfPlayers ()
: base ()
{
Add(2);
Add(3);
Add(4);
}
}
}
(3)在OptionsWindow.xaml文件中,选择包含ComboBox的Canvas元素,并将下列代码添加到其下方,但要在TabControl声明之前:
<Canvas.Resources〉
<local:NumberOfPlayers x:Key="numberOfPlayersData" />
</Canvas.Resources〉
(4)选择ComboBox,并从中删除三个ComboBoxItem。
(5)在其中添加属性:
ItemsSource="{Binding Source={StaticResource numberOfPlayersData}}"
示例说明
在本例中,我们完成了多项工作。NumbetOfPlayers类继承自一个特殊集合ObservableCollection。这个基类是一个进行过扩展的集合,以使其能在WPF中更好地发挥作用。在该类的构造函数中,我们为该集合添加了几个值。
接下来在Canvas中新建了一个资源,其实可在ComboBox的任意父元素中创建这个资源。一旦在元素中指定了某个资源,它的所有子元素就都可以使用这一资源。
最后通过ItemsSource设置了绑定关系。ItemsSource属性被设计用于在项控件中,为项集合设置绑定。在绑定中,只需要指定绑定源。绑定目标、目标属性和源属性的设置都是在ItemsSouree属性中进行处理的。
点击加载更多评论>>