我有一個由按鈕和文本框組成的 DockPanel。這些控制元件由邊框包圍。現在我想驗證文本框并在驗證失敗時更改邊框的顏色。
但是,在我當前的應用程式中,驗證只影響文本框本身。
<Border>
<DockPanel>
<Button Command="{Binding GetFolder}">
<Button.Template>
<ControlTemplate>
<Image Source="/Assets/Icons/Folder.png"/>
</ControlTemplate>
</Button.Template>
</Button>
<TextBox
Text="{Binding
Path=DataFolder,
ValidatesOnDataErrors=True,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged,
NotifyOnSourceUpdated=True}">
</TextBox>
</DockPanel>
</Border>
我知道我可以給 Border 一個 ErrorTemplate:
<Border Validation.ErrorTemplate="{StaticResource errorTemplate}">...,
但是我如何告訴它文本框驗證的結果呢?
uj5u.com熱心網友回復:
您可以使用 aStyle與 aDataTrigger系結到的附加Validation.HasError屬性TextBox:
<Border>
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding (Validation.HasError),ElementName=tb}"
Value="True">
<Setter Property="BorderThickness" Value="1" />
<Setter Property="BorderBrush" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<DockPanel>
<Button Command="{Binding GetFolder}">
<Button.Template>
<ControlTemplate>
<Image Source="/Assets/Icons/Folder.png"/>
</ControlTemplate>
</Button.Template>
</Button>
<TextBox x:Name="tb"
Text="{Binding
Path=DataFolder,
ValidatesOnDataErrors=True,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged,
NotifyOnSourceUpdated=True}">
</TextBox>
</DockPanel>
</Border>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/425399.html
上一篇:選擇驗證串列VBA中的下一項
