位置:首页 > 软件操作教程 > 编程开发 > C# > 问题详情

C# 数据绑定 静态绑定到外部对象

提问人:刘团圆发布时间:2020-12-09

    通过在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属性中进行处理的。

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部