2010-06-15 2 views
3

Есть ли у кого тактика для работы с несколькими правилами и шаблонами валидации для этих правил проверки.Несколько правил валидации и шаблонов валидации в WPF

Пример:

Я хочу иметь два правила проверки (требуется & данные)

Я хочу либо ...

Один шаблон, который может изменить это отображение в зависимости от того, какое правило обжигают или Два шаблона, которые отображаются в зависимости от того, какое правило уволено

ответ

2

Итак, я выяснил подход, который работает, и я надеялся получить обратную связь от любого, у кого может быть интерес к этому.

ValidationRule:

Мое правило проверки изменен, чтобы отправить обратно "ErrorObject", который имеет требуется копаться & свойства Message

public class ErrorObject 
    { 
     public bool IsRequired { get; set; } 
     public string Message { get; set; } 
    } 

.... 

return new ValidationResult(false, new ErrorObject() { IsRequired = true, Message = "Is Required" }); 

Шаблон:

В Validation Шаблон теперь я могу получить доступ к этим свойства и соответствующим образом изменить визуальность. (В этом примере я показывающий * для требуемых полей)

  <Border 
       BorderBrush="Red" 
       CornerRadius="3" 
       BorderThickness="1"> 
       <AdornedElementPlaceholder 
        x:Name="errorAdorner" /> 
      </Border> 
      <TextBlock 
       Text="*" 
       Foreground="Red" 
       Visibility="{Binding ElementName=errorAdorner, Path=AdornedElement.(Validation.Errors).CurrentItem.ErrorContent.IsRequired, Converter={StaticResource BooleanToVisibilityConverter}}" /> 

Так что это простой пример, но вы можете себе представить, что это может быть очень мощным. Спасибо MS за то, что вы отправили обратно объект !!!

0

Возможно, я ошибаюсь, не уверен на 100%, но я думаю, что вы должны программировать заявку если вы хотите отображать различные шаблоны.

Этот подход подобен этому? Programmatically change validation rule in WPF TextBox

HTH.

+0

Я думаю, вы можете быть правы в том, что нужно «программировать шаблоны», но этого я и стараюсь избегать. Если я могу просто сделать это с помощью XAML, то в тысячу раз проще применять шаблоны проверки для всего приложения. Кроме того, ни один подход в этом вопросе, который вы связываете, относится только к нескольким правилам проверки, которые вставляются в зависимости от разных факторов. В моей проблеме я могу ожидать наличия правил проверки во всех случаях, я просто хочу иметь возможность действовать по-разному. Спасибо за попытку, хотя –

Смежные вопросы