2011-08-09 15 views
0

私は、私の見解モデルにUserControlを囲まれています。ビューモデル実装IDataErrorInfoUserConrolValidation.ErrorTemplateです。私は(例えば:ComboBoxの選択)は、いくつかのプロパティを変更するとWPFユーザーコントロールの検証問題

<UserControl.Style> 
    <Style TargetType="{x:Type UserControl}"> 
     <Setter Property="Validation.ErrorTemplate"> 
      <Setter.Value> 
       <ControlTemplate> 
        <DockPanel> 
         <AdornedElementPlaceholder x:Name="adorner"> 
          <Image x:Name="imgError" 
             Width="32" 
             Height="32" 
             Margin="5" 
             HorizontalAlignment="Left" 
             VerticalAlignment="Bottom" 
             ToolTip="{Binding ElementName=adorner,Path=AdornedElement.(Validation.Errors),Converter={StaticResource ValidationErrors2TooltipConverter},ConverterParameter='Couldn't save hour work:'}" 
             Source="{StaticResource ErrorDrawingImage}" /> 
         </AdornedElementPlaceholder> 
        </DockPanel> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</UserControl.Style> 

:このテンプレートでは、私はエラーでツールチップを表示するために、コンバータを使用して、エラーの数は変更する必要がありますが、それはしていません。 ToolTipでエラーをリフレッシュする方法が見つかりませんでした。

質問:

  1. はどのようToolTipでエラーをリフレッシュできます。
  2. 検証はUserControlのために正常に動作しますが、それ内部のコンポーネントには機能しません。しかし、コントロールが(IDataErrorInfoと)モデルを表示するために、境界、IはUserControlにコンポーネントのValidation.ErrorTemplate年代を定義するが、それらは表示されません。

答えて

0

検証パターンは、ユーザーコントロール内の各コントロールのために適用する必要があります。 "相続"はありません。

+0

だから私は 'IDataErrorInfo'を実装する各制御のための独自のビューモデルを作成する必要がありますか?それは2番目の問題を解決するかもしれないかもしれませんが、最初はどうですか? –

+0

ここでは良いチュートリアルです:http://codeblitz.wordpress.com/2009/05/08/wpf-validation-made-easy-with-idataerrorinfo/ –

+0

私はあなたがいくつかのモデルを作成する必要はないと思うが、 ValidationErrorは各コントロールに対して定義されています。 –