Как распространять изменения, сделанные вне моего представления в приложении WPF - PullRequest
0 голосов
/ 29 апреля 2011

У меня есть свойство под названием IsVisible:

public new bool IsVisible
{
    get { return base.IsVisible; }
    set
    {
        base.IsVisible = value;
        this.RaisePropertyChanged ( "IsVisible" );
    }
}

Таким образом, это свойство устанавливается на true, когда левая кнопка мыши нажата для выбранного элемента в TreeView. Это работает нормально, но у меня также есть CheckBox Я пытаюсь привязать к одному и тому же свойству два пути. Поэтому всякий раз, когда я изменяю это свойство левой кнопкой мыши, CheckBox показывает состояние IsVisible, если оно истинно. Так что это работает частично.

Но проблема в том, что каждый раз, когда я устанавливаю для этого свойства значение true для экземпляра, для свойства IsVisible всех остальных слоев устанавливается значение false, но CheckBox es не показывает изменения. Они все еще выглядят проверенными.

Поэтому всякий раз, когда я говорю:

layer.IsVisible = true;

все остальные уровни установлены в false базовым классом, к которому у меня нет доступа к исходному коду (показан выше).

Как я могу заставить мое приложение распознавать это изменение?

1 Ответ

2 голосов
/ 29 апреля 2011

То есть вы скрываете свойство IsVisible базового класса, которое не реализует INotifyPropertyChanged? Все флажки привязаны к вашему классу (не базовому)?

Можете ли вы имитировать поведение базового класса, перебирая необходимые слои и внося те же самые изменения в свои собственные свойства (которые, очевидно, НЕ уведомляют)?

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