我构建了一个WPF应用程序,并设法通过stackoverflow上的帖子使验证工作。我唯一的问题是它覆盖了我正在使用的主题。 例如,主题使文本框看起来像一个圆角矩形,但在设置绑定后,它看起来像默认的文本框。这是我的代码:
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="IsEnabled" Value="false" />
<Style.Triggers>
<!-- Require the controls to be valid in order to press OK -->
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=txtEmail, Path=(Validation.HasError)}" Value="false" />
</MultiDataTrigger.Conditions>
<Setter Property="IsEnabled" Value="true" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
背后的代码是:
//Form loaded event code
txtEmail.GetBindingExpression(TextBox.TextProperty).UpdateSource();
我试图查看主题文件,但我很快就丢了。我以为我可以像web css文件一样使用该文件。现在我已经禁用了数据绑定。因为有任何解决方法这个?感谢您阅读本文
答案 0 :(得分:2)
不确定这是否是根本问题,但尝试将BasedOn="{StaticResource {x:Type Button}}"
添加到样式元素。
Button.Style>
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
...