上下文
我正在使用WPF 4创建一个Login界面,其中包含两个Label
,一个TextBox
(用于用户名)和一个PasswordBox
。两个元素都使用相同的样式/模板。
用户名绑定到我的Username
模型类中的User
属性,该属性在View的View-Model(代表其DataContext
)
密码使用代码隐藏事件(即:OnPasswordChanged
)更新模型。
我的模型中还有两个属性,表示我的用户名和密码的有效状态,即:
UsernameIsValid
PasswordIsValid
我的View-Model和Service类更新了这些属性。
问题:
如何为这些元素Adorner
创建Style
并仅在UsernameIsValid
或PasswordIsValid
属性为真时显示?
如果可能的话,我还想在参数中传递要在装饰器中显示的文本(这将是一个标注,显示文字和图标)
答案 0 :(得分:3)
已经很晚了所以不提供代码,但会给你简短的答案。
下面是如何让xaml代码在样式中翻转。
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="BorderBrush" Value="Red"/>
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Foreground" Value="Red" />
<Setter
Property="ToolTip"
Value="{Binding RelativeSource={x:Static RelativeSource.Self},Path=(Validation.Errors)[0].ErrorContent}" />
</Trigger>
</Style.Triggers>