WPF:初始化TextBox并将其绑定到验证规则

时间:2011-07-01 21:05:07

标签: wpf xaml data-binding textbox

我尝试验证用户进入WPF对话框文本框的IP地址。该文本框应该用127.0.0.1初始化。这是XAML:

<TextBox 
    Height="23" 
    Width="98" 
    VerticalAlignment="Top" 
    HorizontalAlignment="Left" 
    Name="ip_address" 
    Text="127.0.0.1">
    <TextBox.Text>
        <Binding Path="Left" UpdateSourceTrigger="PropertyChanged">
            <Binding.ValidationRules>
                <local:IPValidationRule />
            </Binding.ValidationRules>
        </Binding>
    </TextBox.Text>
</TextBox>

此尝试将文本框绑定到验证规则会导致错误,因为属性Text已经具有值127.0.0.1。我的问题是:如何同时实现初始化和绑定?

问候,RSel

PS:在Window_Loaded中初始化文本框也不起作用。盒子仍然是空的。没有绑定规则就行了。

1 个答案:

答案 0 :(得分:0)

几个选项:

  1. 在文本框绑定的属性中设置初始值。绑定应该在控件加载时选择它。我不确定这是否符合你的目标。

  2. 使用绑定对象的TargetNullValue属性指定源为null时要显示的内容。

  3. 这是选项2的MSDN:

    http://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase.targetnullvalue.aspx