gpt4 book ai didi

silverlight - 您如何处理 Silverlight 中的验证?

转载 作者:行者123 更新时间:2023-12-04 03:25:46 25 4
gpt4 key购买 nike

您是如何决定在 Silverlight 应用程序中处理数据/控制验证的?

最佳答案

您可以抛出和捕获数据验证异常。

要管理这两种类型的错误,需要采取 3 个步骤:

  • 识别控件中的错误处理程序或可见性层次结构中的更高级别(例如,容器;在本例中为包含文本框的网格)
  • 将 NotifyOnValidationError 和 ValidateOnException 设置为 true。后者告诉绑定(bind)引擎在发生异常时创建验证错误事件。前者告诉绑定(bind)引擎在发生验证错误时引发 BindingValidationError 事件。
  • 创建在步骤 1 中命名的事件处理程序。

  • 取自 here .

    示例代码:
    // page.xaml.cs

    private bool clean = true;


    private void LayoutRoot_BindingValidationError(
    object sender, ValidationErrorEventArgs e )
    {
    if ( e.Action == ValidationErrorEventAction.Added )
    {
    QuantityOnHand.Background = new SolidColorBrush( Colors.Red );
    clean = false;
    }
    else if ( e.Action == ValidationErrorEventAction.Removed )
    {
    QuantityOnHand.Background = new SolidColorBrush( Colors.White );
    clean = true;
    }
    }



    // page.xaml

    <Grid x:Name="LayoutRoot" Background="White" BindingValidationError="LayoutRoot_BindingValidationError" >

    <TextBox x:Name="QuantityOnHand"
    Text="{Binding Mode=TwoWay, Path=QuantityOnHand,
    NotifyOnValidationError=true, ValidatesOnExceptions=true }"
    VerticalAlignment="Bottom"
    HorizontalAlignment="Left"
    Height="30" Width="90"red
    Grid.Row="4" Grid.Column="1" />


    // book.cs

    public int QuantityOnHand
    {
    get { return quantityOnHand; }
    set
    {
    if ( value < 0 )
    {
    throw new Exception( "Quantity on hand cannot be negative!" );
    }
    quantityOnHand = value;
    NotifyPropertyChanged( "QuantityOnHand" );
    } // end set
    }

    关于silverlight - 您如何处理 Silverlight 中的验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/188160/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com