2011-07-01 5 views
0

ユーザーがWPFダイアログボックスのテキストボックスに入力するIPアドレスを検証しようとします。テキストボックスは127.0.0.1で初期化されています。これはXAMLです:属性のテキストが既に値127.0.0.1を持っているので、検証ルールにテキストボックスをバインドするWPF:TextBoxを初期化し、それを検証規則にバインドする

<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> 

この試みは、エラーが発生します。私の質問はこれです:どのように私は初期化とバインディングを同時に達成することができますか?

よろしく、RSEL

PS:Window_Loadedにテキストボックスを初期化すると、いずれかの動作しません。ボックスは空のままです。ルールへの拘束がなければ、それは機能します。

答えて

0

カップルのオプション:

  1. テキストボックスがバインドされているプロパティに初期値を設定してください。バインディングは、コントロールがロードされるときにこれを受け取る必要があります。私はこれがあなたの目標を満たすかどうかは分かりません。

  2. バインディングオブジェクトのTargetNullValueプロパティを使用して、ソースがnullの場合に表示する内容を指定します。

ここMSDNはオプション2にあります:

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

関連する問題