运行程序

这节的议程,我觉得很简单——运行程序

在vs界面布局的页面都是静态,真正让项目运行起来才是动态的了。只有使其运行起来,这样xaml与C#合二为一,以一个真正的程序显示出来。你可以选择调试菜单,也可以按F5键,这样,能够生成并且在模拟器中运行。运行的结果就是如图所示:

你可以清晰看见这样的效果,①一些来自于viewmodel中的数据源加载到了listview控件中。②我以前定义的一些数据的模板和样式也能在程序中得到了很好的应用。

我们还能够看到了许多真的只有动态运行的才能够看到的效果。譬如说,当光标移动到某一项的上面,这项目才能高亮显示。选择时候,显示不同的状态、这些变化是怎么来的啊?是来自于我源代码文件某项项的配置。

这样,一个项目已经能够运行了,可是这只是第一步。我们还在这个基础上,添加一些东西。使其项目功能更加的丰富。

导入其他的页面

你并非需要把所有的控件和源码单独一个xaml页面和一个源码文件中去。平时,为了项目更加的更加的管理。我们一般是这么做的,我可以创建多个页面,再把这些页面放在一起就ok了。依照这个道理。我这里也也创建了一个叫做NoItemSelected的页面。xaml源代码如下:

 1 <Page
 2   x:Class="MetroGrocer.Pages.NoItemSelected"
 3   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 4   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 5   xmlns:local="using:MetroGrocer.Pages"
 6   xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
 7   xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
 8   mc:Ignorable="d">
 9    <!--Grid控件-->
10   <Grid Background="{StaticResource AppBackgroundColor}" Margin="10">
11     <TextBlock Style="{StaticResource HeaderTextStyle}"
12           FontSize="30" Text="No Item Select </Grid>
13 </Page>

这是一个简单的页面——这个页面是默认生成的。我能在ListView.xaml布局这个主要的页面上添加这个页面。添加页面源代码如下:

1 <!--垂直方式显示 Frame添加页面-->
2 <StackPanel Orientation="Vertical" Grid.Column="1">
3   <TextBlock Style="{StaticResource HeaderTextStyle}" Margin="10"
4         Text="Item Detail"/>
5   <Frame x:Name="ItemDetailFrame"/>
6 </StackPanel>

这个Frame是一个呈现页面的容器,在源代码页面的Navigate方法,可以定义你导航到那个页面。相应的源代码如下:

 1 using MetroGrocer.Data;
 2 using Windows.UI.Xaml.Controls;
 3 using Windows.UI.Xaml.Navigation;
 4 namespace MetroGrocer.Pages {
 5   public sealed partial class ListPage : Page {
 6     ViewModel viewModel;
 7     public ListPage() {
 8       viewModel = new ViewModel();
 9       // … test data removed for brevity
10       this.InitializeComponent();
11       this.DataContext = viewModel;
12      //导航到那个页面
13 ItemDetailFrame.Navigate(typeof(NoItemSelected));
14     }
15     protected override void OnNavigatedTo(NavigationEventArgs e) {
16     }
17     //选择的事件  是当前选择的页面
18     private void ListSelectionChanged(object sender, SelectionChangedEventArgs e) {
19       viewModel.SelectedItemIndex = groceryList.SelectedIndex;
20    }
21   }
22 }

navgiate的方法中参数是系统的,这个类型代表了你要加载的页面类,他是最简单方法获取系统类型的方法。相应的类型是关键字类型。这个结果就是导入到了其他的页面,相应的运行效果如图所示:

这样,就能导入其他的页面。   下一节,我们继续议程。

 

手把手玩转win8开发系列课程(11)相关推荐

  1. 手把手玩转win8开发系列课程(2)

    对win8开发,上一节我们对win8进行了简单的介绍,这一节我们来瞧一瞧他的开发环境搭建. 前奏. 这里所讲的win8开发,主要是指Windows8 app store 上开发,及metro ui或叫 ...

  2. 手把手玩转win8开发系列课程(14)

    这节的议程就是--添加appbar appbar是出现在哪儿了,出现在屏幕的底部.他能使用户能用手势或者使用鼠标操作程序.metro UI 重点是在主要的控件使用许多控件,使其用户使用win8电脑更加 ...

  3. 手把手玩转win8开发系列课程(18)

    这节,加入弹出对话框 弹出对话框 这个appBar button能起作用类额 ,他处理的源代码是直接放在Click event里面中.大多数的buttons操作更需要一些额外的用户体验,因此我们使用f ...

  4. 手把手玩转win8开发系列课程(22)

    今天的议程,有三个①展示弹出对话框②创建更复杂的控件③并为复杂的控件赋值 (1)展示弹出对话框 上节,我们已经写好了这个对话框,并且已经引入了项目中去了,那我们就有必要展示了. 当用户点击了这个按钮以 ...

  5. Python开发系列课程(11) - 面向对象编程进阶

    面向对象编程进阶 在前面的章节我们已经了解了面向对象的入门知识,知道了如何定义类,如何创建对象以及如何给对象发消息.为了能够更好的使用面向对象编程思想进行程序开发,我们还需要对Python中的面向对象 ...

  6. 【预告】1月6日下午14:30 CLR开发系列课程(3):COM Interop基础 (Level 300)

    1月6日下午14:30我将在MSDN中文网络广播中主讲.NET中COM和COM Interop的相关基础知识.有兴趣的朋友可以通过下面的链接登记并收听此次网络广播:  公共语言运行库(CLR)开发系列 ...

  7. 云开发系列课程让你从入门到精通快速上手Serverless和云开发技术

    简介:云开发系列课程主要介绍了从入门到精通快速上手Serverless和云开发技术.学习内容涵盖云开发协同.云函数.云数据库.多媒体托管.前后端一体化框架等Serverless Web开发必备知识.希 ...

  8. 基于WebMatrix的轻量级Web开发系列课程

    基于WebMatrix的轻量级Web开发系列课程(10): WebMatrix与ASP.NET MVC WebMatrix除了提供了默认的编程模型以外,也对ASP.NET MVC做出了很好的支持,但是 ...

  9. 预告:公共语言运行库(CLR)开发系列课程(4):COM Interop进阶

    这次我主要讲RCW的原理,生命周期,引用计数,套间,System.__ComObject,事件调用原理等内容.CCW由于时间限制就不涉及了,毕竟大家还是以使用RCW为主. 感兴趣的朋友可以在下面注册: ...

最新文章

  1. Manacher算法 , 实例 详解 . NYOJ 最长回文
  2. Windows XP中安装虚拟网卡microsoft loopback adapter
  3. openresty开发系列27--openresty中封装redis操作
  4. C++实现快速排序(附完整源码)
  5. rails 5 action cable 服务器部署
  6. 这些全国各地甜点,你都吃过了吗?
  7. Java 计算两个日期相差的天数
  8. 九宫怎么排列和使用_别人家连客厅茶几都不要了,你却还在纠结挂画怎么挂
  9. python源码中的学习笔记_第9章_类与对象
  10. 电影播放器mplayer设置常用选项
  11. AE输出GIF动图格式的方法支持 CC 2014到2019
  12. ESXI安装威联通NAS系统
  13. matlab生成对角占优矩阵,latex对角矩阵diag
  14. Elasticseach api keys are not enabled
  15. iphone申请AppleID后无法登陆App Store
  16. Windows 启动jar程序
  17. 高德地图 删除marker(指定marker)
  18. 01Linux常用指令
  19. 如何学习编程、一门编程语言怎么算入门、快速掌握一门编程语言
  20. 区块链前景分析和学习建议

热门文章

  1. 《Qt数据类型》--QByteArray,QString,int,hex之间的转化
  2. [Android] ubuntu 下不识别 Android 设备
  3. R语言入门第六集 实验五:综合应用
  4. matlab如何配置weka,matlab调用weka
  5. eclipce如何配置mysql_如何在eclipse配置mysql数据库
  6. wps不能打印_excel小技巧:在手机上的文件的保存、分享、打印
  7. 综合评价模型的缺点_浅谈交通影响评价中不同交通预测方法的特性
  8. python对数据进行合并的函数_利用Python pandas对Excel进行合并的方法示例
  9. php。defined,PHP defined()函数的使用图文详解
  10. jsp 修改的员工select怎么_jdbc+jsp实现简单员工管理系统|chu