2

在 WPF 应用程序中,我使用带有 ExceptionValidationRule 的多个 TextBox 绑定。我希望能够留在具有 ApplicationException 的控件上,直到它有正确的数据输入。有可能吗?

这是我的代码:

 public string strEvtType
    {
        get { return m_strEvtType; }
        set {
                m_strEvtType = value;
                if (m_objEvtCode.ReadEvtTypebyType(m_strEvtType) != 0)
                {
                    throw new ApplicationException("Error ! : " + m_strEvtType.Trim() + " don't exist");
                }
                FirePropertyChangedEvent("strEvtType");
                FirePropertyChangedEvent("m_objEvtCode.strDes");

            }

我的xml:

<TextBox Name="TextBox_TypeEvenement" Grid.Column="1" VerticalAlignment="Center" Height="20" LostFocus="TextBox_TypeEvenement_LostFocus">
  <TextBox.Text>
    <Binding Path="strEvtType">
        <Binding.ValidationRules>
            <ExceptionValidationRule />
        </Binding.ValidationRules>
    </Binding>
  </TextBox.Text>
</TextBox>

我的模板

<Style TargetType="{x:Type TextBox}">
<Setter Property="Validation.ErrorTemplate">
    <Setter.Value>
        <ControlTemplate>
            <DockPanel  LastChildFill="False">
                <TextBlock DockPanel.Dock="Right"
                Foreground="red"
                FontSize="9pt"
                Text="{Binding ElementName=MyAdorner,Path=AdornedElement.(Validation.Errors)[0].ErrorContent}">
                </TextBlock>
                <Border BorderBrush="Red" BorderThickness="1">
                    <AdornedElementPlaceholder Name="MyAdorner" />
                </Border>
            </DockPanel>
        </ControlTemplate>
    </Setter.Value>
</Setter>

非常感谢 :)

此致,

尼克修斯

4

0 回答 0