假设当前的XAML文件里面引用了程序集A和B,那么在设计界面,如果输入B的话会出现这样的自动完成:
<TextBox Name="txtA" B:Test.ResKey="BBB"/>
问题是:
1.B程序集里面的Test.ResKey满足什么条件时会被识别到TextBox上呢?
2.我另外观察到一个现象,就是Test.ResKey这个属性的原型有可能是下面这样的。类Test只是一个普通的class,而且里面实际上没有一个叫做ResKey的属性或者依赖属性定义,这是怎么识别出来的呢?
namespace B public class Test { public static void SetResKey(TextBox tb,string newVal) { //TODO: } }
B只是个命名空间的别名,你把Test所有的命名空间引入 就行,
你这个是附加属性,你看一下基础吧,
在 XAML 会自动识别SetResKey为ResKey
谢谢回答。能否解释下VS的智能提示是怎么加载这个列表的?
之前遇到一个问题,有个接口IXXX,它的一个实现AXXX可以被加载到列表中,但是另一个实现BXXX却不能被识别。就算代码相同都不可以,所以比较奇怪。
@laughter: 如果你写的标准 不可能实现不了,最简单的方法去理解它:你先把基础的概念记住,多写一些例子,mvvm绑定Passwordbox还有 mvvm绑定GridView和GridViuewColumn这些都是可以用附加属性去实现的。做的多了,你再去看一下基础概念相结合,你就会明白,有的时候就是自己总想不通一些小地方导致你理解不了整个概念,多写多练很快你就明白 了
@bluejance: OK,非常感谢。XAML这一块确实比较肤浅,回去找本书看看去。