使用现有的Binding
类,我们可以编写,
<TextBox Text="{Binding Email, Mode=TwoWay}"/>
所以我们可以写任何东西作为电子邮件;本身没有有效性检查Binding
。我开始写一个BindingMore
派生的类,Binding
以便最终我可以写,
<TextBox Text="{local:BindingMore Email, Validate=SomeMethod, Mode=TwoWay}"/>
some or which 将被触发以SomeMethod
验证. 这是我的目标,我还没有写出来。 ICommand
delegate
Email
到目前为止,我只写了这段代码,
public 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}"/>
它工作正常。谁能告诉我为什么在第一种情况下会出现运行时错误?
不幸的是,没有显示错误。它显示的只是:
此外,我从 XAML 收到以下错误消息(即使它完美构建并运行(在第二种情况下)):
类型 'local:BindingMore' 用作标记扩展,但不是从 MarkupExtension 派生的。