-3

在我被分配实现接收数字在 1-999 范围内的文本框之前,我从未使用过 WPF 工具提示,如果超出此范围的工具提示将显示在文本框附近,并且当输入超出范围时,文本框将更改为红色边框。请指导我,我尝试在 C# 中绑定 xaml 和函数,但没有任何反应

<TextBox  HorizontalAlignment="Left" Height="31" TextWrapping="Wrap"  VerticalAlignment="Top" Width="276" Margin="73,71,0,0" PreviewTextInput="PreviewTextInput" PreviewKeyDown="TextboxPreviewKeydown" >
        <TextBox.Text>
            <Binding Path="Number">
                <Binding.ValidationRules>
                    <ExceptionValidationRule />
                </Binding.ValidationRules>
            </Binding>
        </TextBox.Text>
    </TextBox>

和我的 C#

public int Number
    {
        get { return num; }
        set 
        {
            num = value;
            if (value <= 0 || value >999)
            {
                throw new ApplicationException("Out of range");
            }
        }
4

2 回答 2

0

你需要的是建立一个验证规则

您创建一个扩展“ValidationRule”的类(例如“MyValidation”)并实现它然后在您的 xaml 中,您可以执行此操作

<TextBox>
  <TextBox.Text>
     <Binding...>
       <Binding.ValidationRules>
          <local:MyValidation/>
       </Binding.ValidationRules>
     </Binding>
  </TextBox.Text>
</TextBox>
于 2013-08-30T09:25:38.563 回答
0

以最简单的方式,您可以这样做:

        <TextBox Text="{Binding}">
            <TextBox.ToolTip>
                <TextBlock Text="{Binding }"/> // Here you can bind to property or give static value to show in tooltip
            </TextBox.ToolTip>
        </TextBox>

谢谢

于 2013-08-30T08:18:02.790 回答