2013-01-01 12 views
5

Podczas MSDN wydaje się być mylące mówiąc "you cannot use the Validation.ErrorTemplate attached property like you would with simple controls", uważam, że to jest możliwe w każdym z mojego okna XAML ustawić walidacji szablon błędu jak poniżej:DataGridTextColumn.EditingElementStyle dla wszystkich datagrids

<DataGridTextColumn ...> 
    ... 
    <DataGridTextColumn.EditingElementStyle> 
     <Style> 
      <Setter Property="Validation.ErrorTemplate" 
        Value="{StaticResource MyValidationErrorTemplate}"/> 
     </Style> 
    </DataGridTextColumn.EditingElementStyle> 
</DataGridTextColumn> 

Co chcę teraz jest aby ustawić szablon błędów dla wszystkich datagridów w słowniku zasobów współdzielonych tematów. Ale nie mogę wykonać następujące czynności:

<Style TargetType="{x:Type DataGridTextColumn}"> 
    <Setter Property="Validation.ErrorTemplate" 
      Value="{StaticResource MyValidationErrorTemplate}"/> 
</Style> 

ponieważ DataGridTextColumn nie jest dziedziczona od FrameworkElement; dlatego nie może mieć właściwości stylu (patrz Why can't I style a DataGridTextColumn?).

Czy ktoś może wskazać mi właściwy kierunek?

+1

czy kiedykolwiek wymyśliłeś ten jeden? Jesteśmy w trakcie tworzenia stylu datagrid dla naszej aplikacji i chcielibyśmy uniknąć konieczności wstawiania opcji EditingElementStyle dla każdej kolumny – havardhu

Odpowiedz

0

Szukam odpowiedzi na to samo pytanie. Możesz uczynić zadanie nieco mniej szczegółowym z takim stylem jak ten.

<Style x:Key="TextColumnErrorStyle" TargetType="{x:Type TextBox}"> 
    <Setter Property="Validation.ErrorTemplate" Value="{StaticResource ErrorTemplateStyle}"></Setter> 
</Style> 

Zastosowanie:

<DataGridTextColumn Width="2*" Header="IP Address" 
    Binding="{Binding IpDestination,  
    UpdateSourceTrigger=PropertyChanged, 
    ValidatesOnExceptions=True}" 
    EditingElementStyle="{StaticResource TextColumnErrorStyle}"/> 

Fuj.

Powiązane problemy