2011-01-19 56 views
0

利用現有Binding類,我們可以寫,從Binding類派生(Silverlight的4.0)

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

因此,我們可以寫任何東西電子郵件; Binding本身沒有有效性檢查。我開始寫一個類BindingMoreBinding推導,最終使我能寫,

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

哪裏SomeMethod一些ICommanddelegate將被觸發驗證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}"/> 

它工作正常。有人可以告訴我爲什麼它在第一種情況下給運行時錯誤?

不幸的是,錯誤沒有顯示。它所展現的是這樣的: alt text

而且,我從XAML以下錯誤消息(即使它建立完美和運行(在第二種情況下)):

類型「地方:BindingMore」像 一樣使用標記擴展,但不從MarkupExtension派生 。

回答

3

Silverlight不支持自定義Markup Extensions。嘗試使用Attached Property方法或Behavior

+0

行爲?這是什麼?有些課程?你能給我一些鏈接嗎? – Nawaz 2011-01-19 06:41:35