2011-08-04 3 views
0

Like PropertyNumberとOwnerNumberの組み合わせを組み合わせて検証するには、データベースに存在しないようにしてください。今はIDataErrorInfoを使用していますが、一度に1つの値だけを検証します。2つの異なるテキストボックスの値の組み合わせを検証する方法は?

 <Label DockPanel.Dock="Top" Width="Auto" Height="16"/> 

     <TextBox Name="PropertyNumber" DockPanel.Dock="Top" Text="{Binding 
     UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, Path=SelectedPropertyNumber, 
     ValidatesOnDataErrors=True}" Width="115" Height="22" 
     HorizontalAlignment="Left" IsEnabled="{Binding 
     PropertyNumbersEnabled,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" /> 

     <Label DockPanel.Dock="Top" Width="Auto" Height="16"/> 

     <TextBox Name="OwnerNumber" Text="{Binding BindingGroupName=NGLDataFormGrp, 
     Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, 
     Path=OwnerNumber}" DockPanel.Dock="Top" HorizontalAlignment="Left" 
     Width="115" Height="22" IsEnabled="{Binding 
     UpdateSourceTrigger=PropertyChanged, 
     Path=OwnerNumberEnabled, Mode=TwoWay}"/> 
+0

IdataErrorを使用してどのように検証していますか?ベストソリューションを提供するのに役立つコードを公開してください – Bathineni

答えて

0

これが最適な解決策であるかどうかはわかりませんが、それは私にとってはうまくいきます。私が通常これを処理する方法は、有効または無効を示すbooleanプロパティにバインドされたDataTriggerを作成することです。

ブール値がfalseの場合、私は境界線を赤くします。そうでなければ、境界線の色はありません。

ここでは例DataTriggerです:あなたが同じブール値にバインドされた私達のテキストボックスの両方にこのスタイルを適用する場合はブール値がfalseの場合、彼らは輝き赤い枠線で表示されます両方

<Style TargetType="{x:Type TextBox}"> 
    <Setter Property="TextElement.FontFamily" Value="Calibri" /> 
    <Setter Property="TextElement.FontSize" Value="14" /> 
    <Setter Property="TextElement.Foreground" Value="Black" /> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding Path=IsValid}" Value="False"> 
      <Setter Property="Effect"> 
       <Setter.Value> 
       <DropShadowEffect BlurRadius="5" Color="Red" ShadowDepth="0" /> 
       </Setter.Value> 
      </Setter> 
      <Setter Property="ToolTip" Value="Message Field entered does not exist in Message Output tree." /> 
     </DataTrigger> 
     <DataTrigger Binding="{Binding Path=IsValid}" Value="True"> 
      <Setter Property="Effect" Value="{x:Null}" /> 
     </DataTrigger> 
    </Style.Triggers> 
    </Style> 

1

これにはBindingGroupを使用する必要があります。 Vincent Sibalはそれについての素晴らしいブログエントリを持っています:BindingGroups with Item-level Validation

+0

ありがとうXAMeLi、私はBindingGroupを知らなかった。 XAMLを使用すると、毎日何かを学ぶことができます。 – Josh