Здесь много проблем, но главная причина, которая вызывает вашу проблему, состоит в том, что, вероятно, существует несоответствие типов между свойствами, для которых вы пытаетесь использовать TwoWay Binding. Вы не перечислили код для своего свойства Articles, но я предполагаю, что это, вероятно, что-то вроде IEnumerable<Article>
или ObservableCollection<Article>
, а не IEnumerable<object>
, как ваше свойство ListSource.
Когда вы устанавливаете двустороннюю привязку и целевое значение не может быть преобразовано обратно в тип источника (т. Е. IEnumerable<object>
-> ObservableCollection<Article>
), свойство источника (статьи здесь) получит нулевое значение, которое будет затем возвращаемся через привязку к целевому свойству (здесь ListSource).
Вы можете изменить тип с любой стороны, но если вы используете их с двухсторонним связыванием, типы должны совпадать.
В целом, использование TwoWay Bindings с коллекциями является плохой идеей. Вместо того чтобы копировать и заменять экземпляр коллекции каждый раз, когда вы хотите внести изменение, просто добавьте и удалите элементы из одного экземпляра. Поскольку этот один экземпляр является одной и той же коллекцией с обеих сторон (OneWay) Binding, обновления будут отображаться с обеих сторон, и если вы используете ObservableCollection, вы также можете получать уведомления об изменениях с обеих сторон.
Вам также следует избавиться от кода OnValueChanged, поскольку он просто сбрасывает свойство в значение, которое было только что установлено в свойстве.