WPF学习系列012: 2.7.4 XAML 扩展部分
来源:互联网 发布:java中什么叫联合测试 编辑:程序博客网 时间:2024/05/22 00:49
-
- 可以在 XAML 中使用任何类型的.NET对象(甚至是COM对象),也可以使用自己定义的对象,无论这些对象是不是与用户界面有关。对象必须以“友好声明”(declarative-friendly)的方式进行设计。
- 对于不是专门为 XAML 设计的程序集,仍然可以在 XAML 中使用。
- 当转换子元素时,任何一个有效的 XAML 解析器或者编译器必须遵循下面的规则:
- 如果该类型实现了 IList 接口,就为每个子元素调用 IList.Add
- 否则,如果该类型实现了 IDictionary 接口,就为每个子元素调用 IDictionary.Add,在该值的键和元素中使用 x:Key 的特性值
- 否则,如果父元素支持内容属性,而且子元素的类型与该内容属性是兼容的,就把子元素作为它的属性值
- 否则,如果子对象是普通文本,且有类型转换器将子对象转换为父类型(没有在父元素上设置属性),则把子元素作为类型转换器的输入,将输出作为父对象的实例
- 其它情况,则抛出一个错误
2.7.4 XAML 扩展部分
例如:
在 mscorlib.dll 中的 .NET Framework API:
System.Collections.Hashtable h = new System.Collections.Hashtable();
h.Add("key1", 7);
h.Add("key2", 23);
如果要在 XAML 中引用上面程序集中的 API,可以表示为:
<collections:Hashtable
xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<sys:Int32 x:Key="key1">7</sys:Int32>
<sys:Int32 x:Key="key2">23</sys:Int32>
</collections:Hashtable>
其中:clr-namespace标记允许直接在 XAML 中放入一个 .NET 命名空间。
- WPF学习系列012: 2.7.4 XAML 扩展部分
- WPF学习系列002: 2.1 XAML 定义
- WPF Summary:XAML标记扩展
- WPF学习:XAML概述
- WPf学习------XAML 概述 (WPF)
- WPF学习系列015: 2.8.2 编译 XAML
- WPF学习系列016: 2.8.3 XAML 关键字
- 小麦子-WPF学习系列2:XAML入门
- WPF XAML 系统学习XAML语法
- WPF学习系列007: 2.6 标记扩展
- WPF 学习笔记 - 4. XAML
- WPF 学习笔记 - 4. XAML
- WPF学习笔记--xaml介绍
- WPF学习------XAML 语法详述
- WPF学习------XAML 语法详述
- WPF学习XAML 语法概述
- WPF学习系列013: 2.8 编译:将 XAML 与过程式代码混合使用
- WPF学习系列014: 2.8.1 在运行时加载和解析 XAML
- WPF学习系列010: 2.7.2 集合项
- 常用 socket编程 数据转换
- WPF学习系列011: 2.7.3 更多类型转换
- sudo应用简介&&sudoers中文man文件
- 终端console的一些快捷命令
- WPF学习系列012: 2.7.4 XAML 扩展部分
- 研究目的-量价时空(3)
- WPF学习系列013: 2.8 编译:将 XAML 与过程式代码混合使用
- 【Javascript】 Event currentTarget在IE中兼容的问题
- gconf-editor相关的内容
- Ajax与传统web技术比较
- LSB和MSB
- WPF学习系列014: 2.8.1 在运行时加载和解析 XAML
- Spring security 在项目中的使用第二篇之代码实现阶段