Окно проверки IErrorDataInfo не отображается - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть модель и пользовательский интерфейс

public class ModelObservable:ObservableObject, IDataErrorInfo
{
    // ...some properties
    // ....
    public string this[string name]
    {
        get
        {
            string result = string.Empty;
            result = "Always ERROR";
            return result;
        }
    }
}

<TextBox Grid.Row="0" Margin="10"
                 TextWrapping="Wrap" AcceptsReturn="True"
                 Text="{Binding Model.AnyProp, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}"/>

Когда я набираю текстовое поле, запускается установщик модели, также запускается событие IDataErrorInfo , но в пользовательском интерфейсе я неЯ не вижу никакого красного прямоугольника вокруг текстового поля.

Я создал простой пример в отдельном проекте, только 1 свойство, 1 текстовое поле, и это работает, но в моем приложении это не так - прямоугольник вокруг текстового полясиний.

Обновление Мое главное окно является производным от Window и вызывает проблему:

 public class CustomTitleBarWindow: Window
    {
        public static readonly DependencyProperty ShowSystemMenuCommandProperty = DependencyProperty.Register("ShowSystemMenuCommand", typeof(ICommand), typeof(CustomTitleBarWindow), new PropertyMetadata(null));
        public ICommand ShowSystemMenuCommand
        {
            get => (ICommand)GetValue(ShowSystemMenuCommandProperty);
            set => SetValue(ShowSystemMenuCommandProperty, value);
        }

        public static readonly DependencyProperty MinimizeCommandProperty = DependencyProperty.Register("MinimizeCommand", typeof(ICommand), typeof(CustomTitleBarWindow), new PropertyMetadata(null));
        public ICommand MinimizeCommand
        {
            get => (ICommand)GetValue(MinimizeCommandProperty);
            set => SetValue(MinimizeCommandProperty, value);
        }

        public static readonly DependencyProperty MaximizeCommandProperty = DependencyProperty.Register("MaximizeCommand", typeof(ICommand), typeof(CustomTitleBarWindow), new PropertyMetadata(null));
        public ICommand MaximizeCommand
        {
            get => (ICommand)GetValue(MaximizeCommandProperty);
            set => SetValue(MaximizeCommandProperty, value);
        }

        public static readonly DependencyProperty CloseCommandProperty = DependencyProperty.Register("CloseCommand", typeof(ICommand), typeof(CustomTitleBarWindow), new PropertyMetadata(null));
        public ICommand CloseCommand
        {
            get => (ICommand)GetValue(CloseCommandProperty);
            set => SetValue(CloseCommandProperty, value);
        }
    }

Когда я возвращаю его обратно в Window, проверка начинает работать.Почему так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...