Win10系列:VC++数据绑定

数据绑定是一种将后台数据绑定到前台控件的机制,通常用于动态地将对象或集合中所保存的数据显示到前台界面中。本节通过一个具体的示例来说明在Windows应用商店应用中如何通过数据绑定将保存在集合中的数据显示到前台界面中。

在Visual Staudio 2012中新建一个Visual C++的Windows应用商店的空白应用程序项目,并命名为BindingDemo。接着打开MainPage.xaml.h头文件,添加如下的代码:

//定义类FeedItem

[Windows::UI::Xaml::Data::Bindable]

public ref class FeedItem sealed

{

internal:

????//FeedItem构造函数

????FeedItem(void){}

public:

????//声明属性Country

????property Platform::String^ Country;

????//声明属性City

????property Platform::String^ City;

};

在上面的代码中,首先使用"[Windows::UI::Xaml::Data::Bindable]"语句定义一个可以绑定到前台界面的FeedItem类,然后在此类中定义构造函数FeedItem,接着声明两个String类型的属性 Country和City。

定义了FeedItem类以后,接着布局前台界面。打开MainPage.xaml文件,并在Grid元素中添加如下代码:

<ListBox x:Name="InfoListBox" ItemsSource="{Binding}" Foreground="Black" Width="200" Height="260" FontSize="24">

<ListBox.ItemTemplate>

<DataTemplate>

<StackPanel>

<TextBlock Text="{Binding Country}"/>

<TextBlock Text="{Binding City}"/>

</StackPanel>

</DataTemplate>

</ListBox.ItemTemplate>

</ListBox>

在上面的代码中,添加了一个名为"InfoListBox"的ListBox控件,并将此控件的ItemsSource属性设置为{Binding},表示在后台所创建的集合将绑定到这个属性。接着为ListBox控件添加DataTemplate模版,并在此模版中添加两个TextBlock控件,用FeedItem类的Country属性和City属性分别绑定到这两个TextBlock控件的Text属性上。

布局了前台界面以后,接着打开MainPage.xaml.cpp源文件,并添加如下的代码:

MainPage::MainPage()

{

????InitializeComponent();

????//创建一个Vector<FeedItem^>类型的集合items

????Platform::Collections::Vector<FeedItem^>^ items=ref new Platform::Collections::Vector<FeedItem^>();

????//创建FeedItem类的对象feedItemCN

????FeedItem^ feedItemCN = ref new FeedItem();

????feedItemCN->Country="中国";

????feedItemCN->City="北京";

????//创建FeedItem类的对象feedItemUS

????FeedItem^ feedItemUS = ref new FeedItem();

????feedItemUS->Country="美国";

????feedItemUS->City="纽约";

????//创建FeedItem类的对象feedItemUK

????FeedItem^ feedItemUK = ref new FeedItem();

????feedItemUK->Country="英国";

????feedItemUK->City="伦敦";

????//将上述对象保存到items集合中

????items->Append(feedItemCN);

????items->Append(feedItemUS);

????items->Append(feedItemUK);

????//设置ListBox控件的DataContext属性

????InfoListBox->DataContext=items;

}

在上面的代码中,首先创建一个Vector<FeedItem ^>类型的集合items,接着分别创建FeedItem类的三个对象feedItemCN、feedItemUS和feedItemUK,并给这三个对象中的Country属性和City属性赋值。然后调用items集合的Append函数,分别将对象feedItemCN、feedItemUS和feedItemUK添加到此集合中。最后将items集合赋值给名为"InfoComboBox"的ComboBox控件的DataContext属性。

运行BindingDemo项目,前台界面如图20-2所示。

图20-2 items集合中的数据

时间: 2024-11-05 23:07:18

Win10系列:VC++数据绑定的相关文章

Win10系列:VC++ XML文件解析

XML文件按照元素标记来存储数据,通过遍历这些元素标记可以得到XML文件中所保存的数据.在C++/CX的类库中并未定义用于解析XML文件的类,但C++提供了能解析XML文件的框架和类库,如msxml4.libxml.IXMLDOM和TinyXML等,在使用C++/CX编写应用程序时可以通过C++提供的框架和类库来解析XML文件.TinyXML是一个轻量级解析XML的框架,本节将介绍如何使用此框架来解析一个XML文件. TinyXML框架包含了以下的类和函数,通过使用这些类和函数可以方便地读取一个

Win10系列:C#应用控件基础1

Button控件 在Windows应用商店应用的开发中,Button控件是使用比较频繁的控件之一,当用户单击Button控件时,会触发相应的单击事件并在定义好的事件处理方法中执行指定的功能.下面将介绍Button控件的使用方法. 在XAML文件中,Button控件的用法如下所示: <Button?.../> -或- <Button?...> <!--添加子元素--> </Button> -或- <Button?...> <!--添加字符串-

Win10系列:C#应用控件基础2

HyperlinkButton控件 HyperlinkButton控件是以超链接文本形式显示的按钮,可以为其NavigateUri属性设置一个URI地址,当单击超链接文本按钮时,将会使用浏览器打开在HyperlinkButton控件中定义的URI地址页面. 在XAML文件中,HyperlinkButton控件的用法如下所示: <HyperlinkButton?.../> -或- <HyperlinkButton?...> <!--添加子元素--> </Hyperl

Win10系列:C#应用控件基础3

Win10系列:C#应用控件基础3

Win10系列:C#应用控件基础5

ListBox控件 上一小节介绍的ComboBox控件在外观上仅显示当前选中的选项,通过单击此控件文本框才能看到其他选项,而ListBox控件能够以列表形式始终显示选项.在ListBox控件中可以添加多个ListBoxItem列表项来组成一个列表,允许用户在列表中选择一项或多项. 在XAML文件中,ListBox控件的用法如下所示: <ListBox?.../> -或- <ListBox?...> <ListBoxItem><!--添加内容--></L

Win10系列:C#应用控件基础8

ToggleSwitch控件 在应用程序中ToggleSwitch控件可以模拟一个允许用户在启用和禁用两种状态之间进行切换的物理开关,ToggleSwitch控件的功能与我们在日常生活中所使用的电源开关类似. 在XAML文件中,ToggleSwitch控件的用法如下所示: <ToggleSwitch .../> 下面介绍一下ToggleSwitch控件的常用属性: Header属性,获取或设置ToggleSwitch控件的标题内容. OffContent属性,当ToggleSwitch控件是禁

Win10系列:C#应用控件基础14

ProgressBar控件 有时候用户需要执行比较复杂的任务,等待任务完成需要很长时间,在等待的过程中一般会使用进度条提示当前任务的执行进度,让用户更好的掌握任务的执行状态,例如在下载资源时会显示下载进度,发送文件时会显示发送进度等.使用ProgressBar控件能够在界面中为用户提供任务进度变化信息. ProgressBar控件分为确定进度条和不确定进度条两种进度显示样式.确定进度条通过从左到右用色块填充的方式表示一个较长操作的进度信息,而不确定进度条使用重复显示的动画证明任务仍在进行中. 在

Win10系列:C#应用控件基础17

Popup控件 在应用程序中使用Popup控件时,通常会先将其设置为隐藏状态,当用户触发应用中已定义的事件时,Popup控件将以弹出窗口的方式显示相关信息来提示用户操作. 在XAML文件中,Popup控件的用法如下所示: <Popup .../> -或- <Popup ...> <!--添加子元素--> </Popup> 下面介绍一下Popup控件的几个常用属性: Win10系列:C#应用控件基础17

Win10系列:C#应用控件基础21

Win10系列:C#应用控件基础21

Win10系列:JavaScript 控件的使用

向页面中添加的控件可分为两种类型:标准的HTML控件和WinJS库控件.其中标准的HTML控件是指HTML标准中定义的基本控件,如按钮和复选框:WinJS库控件是为开发基于JavaScript 的Windows应用商店应用提供的新控件,如ListView.HtmlControl和PageControl等.下面首先介绍如何添加这两种类型的控件,然后介绍如何为控件注册事件处理函数和设计控件的样式. (1)添加标准的HTML控件 向页面中添加标准的HTML控件可以通过定义相应的HTML元素来实现.例如