WPF数据验证是界面上的主题

时间:2010-06-02 17:39:06

标签: c# wpf data-binding multidatatrigger

我构建了一个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文件一样使用该文件。现在我已经禁用了数据绑定。因为有任何解决方法这个?感谢您阅读本文

1 个答案:

答案 0 :(得分:2)

不确定这是否是根本问题,但尝试将BasedOn="{StaticResource {x:Type Button}}"添加到样式元素。

Button.Style> 
            <Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}"> 
...