WPF笔记(1.8 资源与映射)——Hello,WPF!
原文:WPF笔记(1.8 资源与映射)——Hello,WPF!
终于,看明白了,已经是凌晨1:39分。
这本书这一节写得实在是不好,一个local搞得我糊里糊涂,于是,准备按照他的思路,按照我的理解,改写一遍,包括源代码。
首先,这句话WPF新版本已经不用了:
<?Mapping XmlNamespace="local" ClrNamespace="DataBindingDemo" ?>,这里DataBindingDemo是例子的命名空间。
然后Window标签中这个属性设置
xmlns:local="local"——改为:
xmlns:local="clr-namespace:DataBindingDemo",这里把命名空间DataBindingDemo与命名空间local进行mapping。clr-namespace是固定语法,这能这么写。
接下来,在<Window.Resources>中设置资源:
<local:Nicknames x:Key="XX">
<local:Nickname Name="Don" Nick="Naked" />
<local:Nickname Name="Martin" Nick="Gudge" />
<local:Nickname Name="Tim" Nick="Stinky" />
</local:Nicknames>这里local等价于DataBindingDemo,所以有NickName类,我们声名一个该类下的对象叫做XX,我们要做的是给XX增加一些资源,就是Nickname对象,于是有了相应的三笔数据。
*注,x:Key用于获取创建对象的名字。
然后在DockPanel中进行绑定,直接指到XX资源,这个刚才定义并赋值的对象:
<DockPanel DataContext="{StaticResource XX}">
这样,相应的后台构造函数改动为:
public Window1()
{
InitializeComponent();
this.addButton.Click += addButton_Click;
// get names collection from resources
this.names = (Nicknames)this.FindResource("XX");
// no need to make data available for binding here
//dockPanel.DataContext = this.names;
}可以看到,初始化和绑定按钮事件没有改变,下面这句话是关键:
this.names = (Nicknames)this.FindResource("XX");
也就是说,找到前台axml的XX对象,拆箱后转给names私有变量。不用再给dockPanel绑定数据了,因为前台xaml已经实现绑定了。
——例子讨论完毕。
最后再讨论一下xaml的Mapping语法:重画一下那张图吧(原图有问题):
WPF笔记(1.8 资源与映射)——Hello,WPF!的更多相关文章
- WPF笔记(1.3 属性元素)——Hello,WPF!
原文:WPF笔记(1.3 属性元素)--Hello,WPF! 这一节中“属性元素”的概念可以用匪夷所思形容.1.WPF用标签元素实现对象建模,有两种:Control和Container,都用来装载内容 ...
- WPF笔记(1.2 Navigation导航)——Hello,WPF!
原文:WPF笔记(1.2 Navigation导航)--Hello,WPF! 这一节是讲导航的.看了一遍,发现多不能实现,因为版本更新了,所以很多旧的语法不支持了,比如说,不再有NavigationA ...
- WPF笔记(1.9 样式和控件模板)——Hello,WPF!
原文:WPF笔记(1.9 样式和控件模板)--Hello,WPF! 资源的另一个用途是样式设置: <Window > <Window.Resources> <St ...
- (转)WPF控件开源资源
(转)WPF控件开源资源 Textbox Drag/Drop in WPFhttp://www.codeproject.com/Articles/42696/Textbox-Drag-Drop-in- ...
- 【转载】linux内核笔记之高端内存映射
原文:linux内核笔记之高端内存映射 在32位的系统上,内核使用第3GB~第4GB的线性地址空间,共1GB大小.内核将其中的前896MB与物理内存的0~896MB进行直接映射,即线性映射,将剩余的1 ...
- WPF笔记(2.8 常用的布局属性)——Layout
原文:WPF笔记(2.8 常用的布局属性)--Layout 这一节老没意思,啰里啰唆的尽是些HTML的属性,挑几个好玩的List出来,备忘:Padding与Margin的区别:Margin指控件边界与 ...
- WPF笔记(2.9和2.10)——Layout
原文:WPF笔记(2.9和2.10)--Layout 2.9讲的是,如果内部设定超过容器大小,怎么办?StackPanel会裁剪越界部分DockPanel和Grid会智能判断,从而决定换行. 2.10 ...
- WPF笔记(2.7 文字布局)——Layout
原文:WPF笔记(2.7 文字布局)--Layout 这一节介绍的是文字布局的几个控件:1.TextBlock 最基本的文字控件可以配置5个Font属性.TextWraping属性,&quo ...
- WPF笔记(2.5 Canvas)——Layout
原文:WPF笔记(2.5 Canvas)--Layout Canvas是最精确的布局容器--绝对定位,此书作者不建议使用,以为控件的大小一般会随着内部字体图片的动态生成而自动变化,所以使用前三种布局是 ...
随机推荐
- HDU 3401 Trade(单调队列优化)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3401 题意:炒股.第i天买入一股的价钱api,卖出一股的价钱bpi,最多买入asi股,最多卖出bsi股 ...
- HTML5学习笔记简明版 目录索引
http://www.cnblogs.com/TomXu/archive/2011/12/06/2277499.html
- <转载>模板声明中template <typename T>和template <class T>
原文地址http://blog.csdn.net/bug07250432/article/details/10150625 在c++Template中很多地方都用到了typename与class这两个 ...
- JUnit4基础 使用JUnit4进行单元测试
JUnit 4全面引入了Annotation来执行我们编写的测试. 关于JUnit 3的使用可以参见:http://www.cnblogs.com/mengdd/archive/2013/03/26/ ...
- XNOR-Net ImageNet Classification Using Binary Convolutional Neural Networks
转载请注明出处: http://www.cnblogs.com/sysuzyq/p/6245186.html by 少侠阿朱
- Oracle varchar 字段排序问题
数据库字段: 想要的结果: 实际查询的结果: 解决方法:使用CAST函数把varchar2转为int类型 order by CAST(CODE AS INTEGER)
- Docker image 镜像介绍
操作镜像 使用 docker 命令行操作 docker 镜像 获取镜像 使用「docker pull +镜像名称」从网络上下载image镜像 core@localhost ~ $ docker pul ...
- PHP获取中英文混合字符串长度及截取
1.字符串长度 PHP获取中英文混合字符串长度的实现代码如下,1中文=1位,2英文=1位,可自行修改 /** * PHP获取字符串中英文混合长度 * @param $str string 字符串 * ...
- Chrome开发者工具详解 (5):Application、Security、Audits面板
Application面板简介 该面板主要是记录网站加载的所有资源信息,包括存储数据(Local Storage.Session Storage.IndexedDB.Web SQL.Cookies). ...
- oc基础 不可变字符串的创建和使用
oc基础 不可变字符串的创建和使用 简介:下面都是字符串基本用法. 1.字符串的创建 //创建oc常量字符串 NSString *str=@"hello world!"; NSL ...