码迷,mamicode.com
首页 > Windows程序 > 详细

WPF使用其它的命名空间(宝典1)

时间:2016-11-12 23:12:21      阅读:371      评论:0      收藏:0      [点我收藏+]

标签:解决方法   它的   字符串表   后台   namespace   oca   没有   基本类型   内容   

Xaml是实例化的,net对象的通用方法,包括那些位于非WPF名称空间下的和自己创建的名称空间中的对象

为使用没有在wpf中定义的类,需要将.net名称空间映射到xml名称空间,可以使用这样的一特殊的语法来实现这样的工作

xmlns:prefix="clr-namespace:Namespace;assembly=assemblName"

如System名称空间的类型如下:

xmlns:sys="clr-namespace:System;assembly=mscorlib"

现在可以创建一个名称空间的类的实例,可使用名称空间前缀:

<local:Myobject..></local:Myobject>

tip

请记住,可使用任何想要使用的名称空间前缀,只要在整个xaml文档中保持一致即可,但sys和local前缀通常在导入system名称空间和当前项目的名称空间使用。

理想的情况是,希望在xaml中使用的每个类都有无参构造函数,如果具有无参构造函数,xaml解析器就可创建对应的对象,设置其属性,并关联所提供的任何事件处理程序,xaml不支持有参构造函数

而且wpf中的所有的元素都包含无参构造函数,此外,需要能够使用公共属性设置你所期望的所有的细节xaml不允许设置公共字段或调用方法

如果想要使用的类没有无参构造函数,就有一些限制,如果试图创建简单的基本类型,可提供数据的字符串表示形式作为标签中的内容,xaml解析器接着使用类型转换器将字符串转换为合适的对象如下:

<sys:DateTime>10/20/2016 4:30 PM</sys:DateTime>

因为DateTime类使用TypeConverter特性将自身关联到DateTimeConverter类所以上面的标记可以奏效。DateTimeConverter类知道这个字符串是合法的DateTime对象,并对其进行转换,当使用这种技术时,不能使用特征

为你的对象设置任何属性

如果类没有无参的构造函数,也没有合适的类型转换器,那就不能成功的

解决方法

1/创建自定义的封装器来克服这些限制。但这样的硬编码会使用异常难以定位

2/使用事件处理代码来控制对象,而完全不使用xaml,(就是在后台来实现)

 

WPF使用其它的命名空间(宝典1)

标签:解决方法   它的   字符串表   后台   namespace   oca   没有   基本类型   内容   

原文地址:http://www.cnblogs.com/ants-double/p/6057613.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!