0

我有一个TextBox连接到类属性的。

<TextBox Name="txtbSleeveLength"   
         Grid.Row="0" 
         Grid.Column="1" 
         VerticalAlignment="Center" 
         HorizontalAlignment="Center" 
         Height="23" Margin="1" 
         Text="{Binding Path=SleeveLength, StringFormat=N2}" 
         Width="120" 
         TextAlignment ="Center" 
         GotFocus="txtbSleeveLength_GotFocus" />

类的属性

public class SleevePattern : Shape, INotifyPropertyChanged
{
 //...
    public event PropertyChangedEventHandler PropertyChanged;
    //...
    protected void Notify(string propertyName)
    {
        if (this.PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
    //...
  public double SleeveLength
    {

        get { return sleeveLength; }
        set
        {
            if (value != sleeveLength)
            {
                sleeveLength = value;
                Notify("SleeveLength");
            }

        }
    }
    //...    

}

由于该属性不可为空,因此有两种效果。开头有“0.00”,TextBox如果TextBox不满足,文本框周围会出现一个红色矩形。

现在问题 什么TextBox属性负责这个矩形(如果存在)?听说有ErrorProvider。是否可以在 XAML 标签中使用它来获取异常并将矩形更改为带有感叹号的红色圆圈?

4

1 回答 1

0

一种解决方法可以是使用边框和样式。

    <Border BorderBrush="Red" >
            <Border.Style>
                <Setter Property="BorderThickness" Value="0"/>
                <Style TargetType="Border">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding SleeveLength}" Value="0">
                            <Setter Property="BorderThickness" Value="2"></Setter>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Border.Style>
            <TextBox ...></TextBox>
        </Border>
于 2015-03-12T11:01:18.020 回答