2011-08-02 31 views
0

呼び出されていないルール:検証は、私は私のXAMLで、次のコード持って

寸法は、文字列の監視可能なコレクションです
<ItemsControl ItemsSource="{Binding Dimensions}"> 
      <ItemsControl.ItemTemplate> 
       <DataTemplate> 
        <Grid> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="Auto" /> 
          <ColumnDefinition MinWidth="100" MaxWidth="300" /> 
         </Grid.ColumnDefinitions> 

         <Label Grid.Column="0" 
           Content="Dimension x" 
           Target="{Binding ElementName=DimTextBox}" /> 
         <TextBox Grid.Column="1" Name="DimTextBox" > 
          <Binding Path="/" UpdateSourceTrigger="PropertyChanged"> 
           <Binding.ValidationRules> 
            <valid:DataSetDimensionValidationRule /> 
           </Binding.ValidationRules> 
          </Binding> 
         </TextBox> 
        </Grid> 
       </DataTemplate>    
      </ItemsControl.ItemTemplate>     
     </ItemsControl> 

を。それはOKをバインドするようだ、私はラベルとテキストボックスの期待数を取得し、テキストボックスにはデフォルト値が含まれています。しかし、テキストボックス内の何かを変更すると、私の検証ルールは呼び出されません。

私はそれがおそらく単純なものだと知っていますが、私は立ち往生しています。助けて?

答えて

0

私はこの問題は、実際には何であったかはわからないが、私はDimensionViewはラベルとそれが働いていた値を含む自分のクラスであるDimensionViewののObservableCollectionであることを私の外形寸法を更新するとき。コード:私は多分それはちょうど私が思うに=「/」

1

この...

<TextBox Grid.Column="1" Name="DimTextBox" > 
    <Binding ValidatesOnExceptions="True" Path="/" UpdateSourceTrigger="PropertyChanged"> 
     <Binding.ValidationRules> 
      <valid:DataSetDimensionValidationRule /> 
     </Binding.ValidationRules> 
    </Binding> 
</TextBox> 

を編集してください:上記は動作しない場合は、検証ルールにこれらのプロパティをいじりしてみてください を: http://msdn.microsoft.com/en-us/library/cc647541.aspx

0

私はちょうどあなたを考えますバインディング要素にValidatesOnDataErrors = "True"を設定する必要があります。

<TextBox Grid.Column="1" Name="DimTextBox" > 
    <Binding Path="/" UpdateSourceTrigger="PropertyChanged"> 
      <Binding.ValidationRules> 
       <valid:DataSetDimensionValidationRule /> 
      </Binding.ValidationRules> 
    </Binding> 
</TextBox> 
+0

パスを好きではなかった

<Label Grid.Column="0" Content="{Binding Label}" Target="{Binding ElementName=DimTextBox}" /> <TextBox Grid.Column="1" Name="DimTextBox" > <Binding Path="Value" UpdateSourceTrigger="PropertyChanged"> <Binding.ValidationRules> <valid:DataSetDimensionValidationRule /> </Binding.ValidationRules> </Binding> </TextBox> 

思い、ValidatesOnDataErrorsはのValidationRuleを実装する場合、デフォルトではtrueですが、私は推測しようとする害はありません。 –

+0

はい、あなたは正しいです、私の第二の推測は、バインディングに問題があるということです。この場合、デバッグウィンドウに出力があるはずです。 –

関連する問題