Фон:
У меня есть ListBox, содержащий элементы, определенные DataTemplates. Прямо сейчас, если у объекта в списке для свойства IsEditable установлено значение true, информация о свойствах элемента будет отображаться внутри текстовых полей (через изменение DataTemplate), а не текстовых блоков (чтобы пользователь мог редактировать содержимое этого элемента списка)
IsEditable включается/выключается кнопкой внутри каждого элемента списка. Мне сказали, что нам нужно поддерживать согласованность состояния всех объектов, а это значит, что я не могу просто перепривязать ItemsSource и потерять все.
В настоящее время я использую это для повторного рендеринга:
this.lbPoints.Dispatcher.Invoke(DispatcherPriority.Render, new Action(() => { }));
Вопрос:
Вышеупомянутый фрагмент кода KIND OF выполняет свою работу. Под «видом» я имею в виду, что в конечном итоге мои данные перерисовываются, но только когда я прокручиваю список до конца, а затем прокручиваю вверх до элемента, который я пытаюсь повторно отобразить.
1) Как я могу немедленно повторно отобразить данные, не прокручивая их, чтобы они отобразились?
DataTrigger
s для динамического изменения содержимого DataTemplates или чего-то еще. Или создайтеTextBox
, который выглядит как обычныйTextBlock
, когдаIsReadOnly
. - person Federico Berasategui   schedule 19.03.2014