2010-03-26 216 views
1

我創建了兩個屬性 - 名稱,鏈接(下)。我使用Required和StringLength屬性進行簡單屬性驗證。我將這個類對象綁定到WPF ListBox(帶有文本框)。屬性驗證屬性

但是,當我有文本框爲空或寫的話比8跡象沒有發生長:/

我應該怎麼做才能火災的ErrorMessage?或者如何以其他方式實現驗證?

我也嘗試使用:

  if (value is int) 
      { 
       throw new ArgumentException("Wpisałeś stringa!!"); 
      } 

但它僅在調試模式下火:/

我與執行屬性驗證類:

public class RssInfo : INotifyPropertyChanged 
{ 
    public RssInfo() { } 
    public RssInfo(string _nazwa, string _link) 
    { 
     nazwa = _nazwa; 
     link = _link; 
    } 

    private string nazwa; 
    [Required(ErrorMessage = "To pole jest obowiązkowe nAZWA")] 
    public string Nazwa 
    { 
     get { return nazwa; } 
     set 
     { 
      if (value != nazwa) 
      { 
       nazwa = value; 
       onPropertyChanged("Nazwa"); 
      } 
      if (value is int) 
      { 
       throw new ArgumentException("Wpisałeś stringa!!"); 
      } 
     } 
    } 
    private string link; 
    [Required(ErrorMessage="To pole jest obowiązkowe link")] 
    [StringLength(8, ErrorMessage = "Link cannot be longer than 8 characters")] 
    public string Link 
    { 
     get { return link; } 
     set 
     { 
      if (value != link) 
      { 
       link = value; 
       onPropertyChanged("Link"); 
      } 
     } 
    } 

    #region INotifyPropertyChanged Members 

    public event PropertyChangedEventHandler PropertyChanged; 

    #endregion 

    private void onPropertyChanged(string propertyName) 
    { 

     if (this.PropertyChanged != null) 
     { 
      PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 
     } 
    } 
} 

回答

2

是您的TextBoxTextProperty綁定到你的名字RSSInfo屬性? 並且是綁定模式TwoWays?此外,請記住TextBox中的Text綁定僅在TextBox失去鍵盤焦點時纔會更新。如果要更新每個鍵盤輸入上的屬性,請在綁定中使用UpdateSourceTrigger="PropertyChanged"屬性。

向我們展示你的XAML過,答案可以很簡單;-)

另外,我建議你使用自定義ValidationRuleTextBox來增強您的驗證。這將使您的用戶界面僅顯示您的模型(RSSInfo)名稱和鏈接屬性的有效數據,因爲當用戶輸入無效時,TextBoxValidationRule禁用Text綁定。這是一個必須使用的ValidationRule這裏;-)

的更多信息: http://weblogs.asp.net/monikadyrda/archive/2009/06/24/wpf-textbox-validation.aspx

+0

你幫了我這麼多!來自鏈接的帖子也非常有用:)莫妮卡 - 博客是誰,也來自我的國家,但我從來沒有聽說過她的博客,謝謝! :) – netmajor 2010-03-27 01:10:14