溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

在Silverlight中如何進(jìn)行基本的數(shù)據(jù)驗(yàn)證

發(fā)布時間:2021-12-03 10:43:06 來源:億速云 閱讀:136 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)在Silverlight中如何進(jìn)行基本的數(shù)據(jù)驗(yàn)證的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

Silverlight 2支持基本的數(shù)據(jù)驗(yàn)證功能。在Silverlight 2中,當(dāng)我們把數(shù)據(jù)綁定到某個UI控件的時候,該數(shù)據(jù)所具有的有效性規(guī)則也自動被綁定到了該UI控件上。

比如某個數(shù)據(jù)字段被設(shè)置為整數(shù)型,當(dāng)我們用非整數(shù)型數(shù)據(jù)對該字段進(jìn)行更新的時候就會發(fā)生錯誤。我們就可以利用這個規(guī)則在UI中對輸入數(shù)據(jù)進(jìn)行驗(yàn)證。要做到這點(diǎn),我們只要設(shè)置兩個XAML屬性,并在所定義的事件中實(shí)現(xiàn)我們所期望的UI行為就可以了。

比如下面的XAML代碼定義了一組控件,用戶通過TextBox對數(shù)據(jù)進(jìn)行更新:

﹤StackPanel x:Name="dataForm"﹥
  ﹤TextBlock Text="FirstName" Width="125" FontSize="12" /﹥
  ﹤TextBox x:Name="FirstNameTextBox" IsReadOnly="False" Width="150" 
Text="{Binding FirstName, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}"
BindingValidationError="FirstNameTextBox_BindingValidationError"/﹥
  ﹤/StackPanel﹥

當(dāng)NotifyOnValidationError和ValidatesOnExceptions這兩個屬性都設(shè)置為true的時候,Silverlight就會在對輸入數(shù)據(jù)驗(yàn)證所綁定的規(guī)則發(fā)生錯誤的時候觸發(fā)BindingValidationError事件,這樣我們就會在驗(yàn)證發(fā)生錯誤時得到通知。

接下來我們要做的就是實(shí)現(xiàn)事件觸發(fā)時的行為,也就是我們期望的UI行為。如:

private void FirstNameTextBox_BindingValidationError(object sender, ValidationErrorEventArgs e)
{
    if (e.Action == ValidationErrorEventAction.Added)
    {
        ((Control)e.OriginalSource).Background = new SolidColorBrush(Colors.Red);
        this.Dispatcher.BeginInvoke(()=>HtmlPage.Window.Alert("The input format is invalid"));
    }
    if (e.Action == ValidationErrorEventAction.Removed)
    {
        ((Control)e.OriginalSource).Background = new SolidColorBrush(Colors.White);
    }
}

在上面這段代碼中,當(dāng)錯誤發(fā)生時,控件(這里是TextBox)的背景色就會變成紅色,并利用HTML頁面的警告窗口給用戶提示信息。而當(dāng)錯誤被更正時,空間就會還原到默認(rèn)的白色。

感謝各位的閱讀!關(guān)于“在Silverlight中如何進(jìn)行基本的數(shù)據(jù)驗(yàn)證”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI