从Binding类派生(Silverlight 4.0)

时间:2011-01-19 06:27:01

标签: wpf silverlight silverlight-4.0 binding markup-extensions

使用现有的Binding类,我们可以写,

 <TextBox Text="{Binding Email, Mode=TwoWay}"/>

所以我们可以将任何写成电子邮件; Binding本身没有进行有效性检查。我开始编写一个源自BindingMore的课程Binding,这样我最终可以编写,

 <TextBox Text="{local:BindingMore Email, Validate=SomeMethod, Mode=TwoWay}"/>

其中SomeMethod是某些ICommanddelegate,会触发这些Emailpublic class BindingMore : System.Windows.Data.Binding { public BindingMore() : base() { } public BindingMore(string path) : base(path) { } } 验证BindingMore。这是我的目标,我还没写过。

截至目前,我已经编写了这段代码,

Binding

所以,在这个阶段, <TextBox Text="{local:BindingMore Email, Mode=TwoWay}"/> 完全等同于 <TextBox Text="{local:BindingMore Path=Email, Mode=TwoWay}"/> ,但是当我写

{{1}}

它给了我运行时错误。但是当我写作时,

{{1}}

工作正常。任何人都可以告诉我为什么它会在第一种情况下给出运行时错误吗?

不幸的是,错误未显示。它显示的是: alt text

此外,我从XAML收到以下错误消息(即使它完美构建并运行(在第二种情况下)):

  

使用类型'local:BindingMore'   标记扩展但不派生   来自MarkupExtension。

1 个答案:

答案 0 :(得分:3)

Markup Extensions不支持自定义Silverlight。尝试使用Attached Property方法或Behavior