Я действительно новичок во всей этой вещи WPF, поэтому моя проблема, вероятно, глупо, но, пожалуйста, у меня есть... У меня есть этот действительно простой класс, позвольте назвать его Заказчиком. Это выглядит так:
namespace TestValidation
{
     class Customer
     {
        private string _name;
        public string Name
        {
            get { return _name; }
            set
            {
                _name = value;
                if (String.IsNullOrEmpty(value))
                {
                    throw new Exception("Customer name is mandatory.");
                }
            }
        }
    }
}
Теперь я создал базовую форму, в которой пользователь может добавлять клиентов в базу данных. Форма содержит простой TextBox, ограниченный свойством Name клиента и кнопку "Добавить".
Код XAML:
<Window x:Class="TestValidation.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:TestValidation"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
<TextBox Margin="119,86,107,194" Name="CustomerName"
        Text="{Binding Path=Customer.Name, 
                ValidatesOnExceptions=True, 
                ValidatesOnDataErrors=True,
                UpdateSourceTrigger=PropertyChanged,
                NotifyOnValidationError=True}"
    />
        <Button Content="Add" HorizontalAlignment="Left" Margin="204,176,0,0" VerticalAlignment="Top" Width="74"/>
    </Grid>
</Window> 
Из атрибута свойства Name вы можете понять, что это имя является обязательным для меня, поэтому я хочу, чтобы событие проверки возрастало, если текстовое поле Name осталось без пробела. По правилам проверки WPF - как только пользователь сосредоточится на текстовом поле, и там нет никакой ценности - он должен изменить цвет границы на красный. По какой-то причине это не происходит, и я не знаю, почему. Что не так в моем процессе?
Теперь я прочитал так много хороших статей о Validation в WPF (например, Принятие правил сложных бизнес-данных с WPF, Проверка данных в WPF и Проверка в Windows Presentation Foundation), но ни один из них не помог мне решить мою проблему.
В конце концов, я хочу, чтобы форма была похожа на форму в Brian Noyes, отличная статья по первой ссылке (у меня нет 10 кредитов, поэтому я не могу прикрепить фотографию... извините).
Буду признателен, если кто-нибудь сможет объяснить мне, как это работает.
Важное примечание. Я работаю с .Net framework 4, поэтому мне нужно решение, которое подходит для этой версии.
