既存のBinding
クラスを使用して、次のように記述できます。
<TextBox Text="{Binding Email, Mode=TwoWay}"/>
したがって、何でもEmail として記述できます。妥当性検査Binding
自体はありません。BindingMore
から派生したクラスを書き始めたBinding
ので、最終的には、
<TextBox Text="{local:BindingMore Email, Validate=SomeMethod, Mode=TwoWay}"/>
を検証するためにトリガーされるものはどこ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 から次のエラー メッセージが表示されます (完全にビルドされて実行された場合でも (2 番目のケース))。
タイプ「local:BindingMore」はマークアップ拡張機能のように使用されますが、MarkupExtension から派生しません。