2010-07-12 2 views
2

내가 모두가 텍스트 상자에 유사한 설정이 같은 뭔가, 데이터 입력 필드의 무리를 정의하는 유형에 대한 데이터 템플릿이 있습니다XAML에서 스타일을 통해 바인딩 속성을 설정하는 방법은 무엇입니까?

<DataTemplate x:Key="ContactInfo"> 
    <DockPanel> 
    <HeaderedContentControl Header="Contact Name"> 
     <TextBox Width="200" Text="{Binding Name, ValidatesOnDataErrors=True}"/> 
    </HeaderedContentControl> 
    <HeaderedContentControl Header="Contact Quest"> 
     <TextBox Width="200" Text="{Binding Quest, ValidatesOnDataErrors=True}"/> 
    </HeaderedContentControl> 
    <HeaderedContentControl Header="Contact Favorite Color"> 
     <TextBox Width="200" Text="{Binding Color, ValidatesOnDataErrors=True}"/> 
    </HeaderedContentControl> 
    </DockPanel> 
</DataTemplate> 

나는 중복을 최대한 줄이고 제거하고 싶습니다 내가 할 수있는만큼 중복 된 속성을 사용할 수 있습니다. DataTemplate에

<DataTemplate.Resources> 
    <Style TargetType="x:Type TextBox"> 
    <Setter Property="Width" Value="200"/> 
    </Style> 
</DataTemplate.Resources> 

을 추가하여 반복되는 Width 특성을 제거 할 수 있다는 것을 알고 있습니다. 그러나 중복 된 "ValidatesOnDataErrors = True"설정을 없애기를 원합니다. 내가 thusly 히를 설정하는 스타일을 수정 시도

:

<DataTemplate.Resources> 
    <Style TargetType="x:Type TextBox"> 
    <Setter Property="Width" Value="200"/> 
    <Setter Property="Text.Binding.ValidatesOnDataErrors" Value="True"/> 
    </Style> 
</DataTemplate.Resources> 

하지만 컴파일시는 ValidatesOnDataErrors가 분해되지 않는 불평.

내가 원하는 것을 어떻게 달성 할 수 있습니까? 나는 스타일에 50 가지 이상의 필드가 있으며, 유효성 검사 기술을 변경하기로 결정할 경우 하나씩 모두 변경하고 싶지는 않습니다.

답변

1

this이 도움이 될 수 있습니다.

+0

내가보기에 문제가된다는 점에서 도움이됩니다. 더 쉬운 해결책이 있기를 희망한다는 점에서 도움이되지 않습니다. 더 나은 방법이 없다면 아마이 방법을 사용할 것입니다. 불행히도,이 답변을 높이 평가하면 내가 가진 것보다 더 많은 평판이 필요합니다. –

+0

나는 명성을 알고있다 :-) –

+0

-1 : 링크 전용 답변을 피하십시오. – ANeves

관련 문제