Проверка (с пользовательским ErrorTemplate) для DataTemplate - PullRequest
1 голос
/ 06 апреля 2010

Я не могу понять этого парня / отчаянно нуждающегося в помощи.

У меня есть ItemControl и DataTemplate в качестве ItemTemplate

т.е.

<DataTemplate>
    <StackPanel>
       <TextBox Text={Binding Prop1}/>
       <TextBox Text={Binding Prop2}/>
    </StackPanel>
</DataTemplate>

Я видел множество примеров применения валидации к цели отдельной привязки (т. Е. Просто валидация каждого текстового поля отдельно). Я хотел бы визуально изменить весь DataTemplate, если НИЧЕГО не так (либо Prop1, либо Prop2), используя <AdornedelementPlaceholder/>, как я видел во многих примерах.

По сути, есть ли способ показать ошибку, если ЛЮБОЙ элемент в объекте, который представляет мой DataContext из DataTemplate, имеет проблему?

Ответы [ 2 ]

2 голосов
/ 27 октября 2010

Вы можете определить пользовательские шаблоны ошибок для обеих привязок, которые определяют StackPanel как Validation.ValidationAdornerSite. Таким образом, StackPanel может быть украшен вместо текстовых полей, когда обнаружена ошибка.

Смотрите эту ссылку для более подробной информации: Винсент Сибал о проверке с помощью ValidationAdornerSite

1 голос
/ 23 апреля 2010

Попробуйте установить BindingGroup на StackPanel, как показано ниже, и установить индивидуальные правила проверки для каждого из ваших текстовых полей. Я на самом деле не пробовал это, но это должно работать.

<StackPanel>
    <StackPanel.BindingGroup>
         <BindingGroup />
    </StackPanel.BindingGroup>

    <TextBox Text={Binding Prop1}/>
    <TextBox Text={Binding Prop2}/>
</StackPanel>
...