2012-04-05 62 views
1

可能重複:
Validation in textbox in WPF通過XAML驗證WPF文本數據

我目前使用此代碼創建一個數字僅文本框

的XAML

<TextBox Height="22" HorizontalAlignment="Left" Margin="192,118,0,0" Name="Unit_ID" VerticalAlignment="Top" Width="173" PreviewTextInput="UnitID_PreviewTextInput" TextInput="Unit_ID_TextInput" TextChanged="Unit_ID_TextChanged" /> 

和th ËC#代碼隱藏

private void UnitID_PreviewTextInput(object sender, TextCompositionEventArgs e) 
     { 
      foreach (char c in e.Text) 
       if (!Char.IsDigit(c)) 
       { 
        e.Handled = true; 
        break; 
       } 

是可以通過專門使用XAML來做到這一點?我試圖儘量減少我的.cs文件

+1

我認爲你正在尋找驗證。谷歌「驗證在wpf」http://stackoverflow.com/questions/1346707/validation-in-textbox-in-wpf – JSJ 2012-04-05 08:18:36

+0

http://stackoverflow.com/questions/1268552/how-do-i-get-a -textbox-to-only-accept-numeric -input-in-wpf可能有一些有用的提示。 – weeyoung 2012-04-05 08:41:01

回答

0

就像你不能用純HTML來完成這件事,你可以不使用XAML(據我所知)。我得到了「少即是多」的哲學,但在這種情況下,您至少需要一些代碼,例如正則表達式來驗證輸入。

3

如果將TextBox的Text屬性的值綁定到int,那麼您將得到一種驗證,就像您無法將MyInt的值設置爲int以外的任何值一樣(如果您嘗試,文本框邊框將變爲紅色)。

在XAML:

<TextBox Text="{Binding MyInt}"/> 

在演示者:

public class MyPresenter : INotifyPropertyChanged 
{ 
    public int MyInt { get; set; } 
    // ... 
} 

和XAML的DataContext的設置爲MyPresenter的一個實例。