Привязка object.object.prop без каких-либо модификаций класса - PullRequest
0 голосов
/ 04 марта 2019

У меня есть такая опора Details.Article.Location.Stock, и мне нужно привязать ее к пользовательскому интерфейсу.но проблема в том, что это исходит от DLL, и у меня нет доступа к этому коду.как только я изменю значение Details.Article.Location.Stock из ViewModel, оно не отразится на пользовательском интерфейсе, так как INotifyPropertyChanged отсутствует в классе Details, а также я не хочу создавать новый объект, просто обновите одну опору любого решенияза это

1 Ответ

0 голосов
/ 04 марта 2019

В какой-то момент этот объект должен быть экспонирован через свойство модели представления, например:

public class YourViewModel : BaseViewModel
{
    public YourEntityClass Something {get; set;}
}

Вы говорите, что вы не можете изменить YourEntityClass, поэтому вы будетевместо этого необходимо реализовать INPC на этом верхнем уровне (т. е. свойство Something).После этого, каждый раз, когда вы обновляете свойство внутри YourEntityClass, вам нужно будет вручную сигнализировать, что весь объект был обновлен, то есть:

RaisePropertyChanged(() => this.Something);

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

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