如何实现UserControl,它将能够接受TextBox字段的不同类型的验证

问题描述

我有一个UserControl,其中包含一个TextBox

        <TextBlock Text="{Binding Text,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:TextEntryControl}}}"
                   x:Name="Label"
                   Style="{StaticResource InputEntryControlTextBlock}"
                   Grid.Column="0"
                    />
        <TextBox Text="{Binding Value,Mode=TwoWay,NotifyOnSourceUpdated=True,AncestorType={x:Type local:TextEntryControl}}}"
                 Width="400"
                 HorizontalAlignment="Left"
                 Grid.Column="1"
                 Validation.ErrorTemplate="{StaticResource ValidationTemplate}"
                 Style="{StaticResource DefaultTextBox}"
                 />

我将此UserControl用于不同目的,因此TextBox可能具有不同类型的验证。 从本文How to: Implement Binding Validation的理解可以看出,我必须直接访问TextBox.Text属性,但是当我尝试这样做时,出现错误,指出无法访问“文本”字段。

我想从使用自定义控件的视图中指定验证。这样:


                <control:TextEntryControl Text="Server:" Value="{Binding ServerUrl}}">
                    <TextBox.Text>
                        <Binding>
                            <Binding.ValidationRules>
                                <validation:FieldEmptyRule />
                            </Binding.ValidationRules>
                        </Binding>
                    </TextBox.Text>
                </control:TextEntryControl>

我应该为TextBox指定DependencyProperty来访问Text属性吗? 或者我该如何实现这种行为?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...