WPF Treeview SelectedItem DataBinding
-
26-10-2019 - |
Вопрос
У меня есть представление о том, где у меня есть объект, связанный с деревом. Объект имеет ряд коллекций (разных типов), поэтому я использую Hiearchical шаблоны с CompositeCollection для отображения их в деревьях.
Затем у меня есть текстовый поле, который связан с выбранной Treeview. Здесь я сериализую SelectedItem на XML и отображаю его в текстовом поле для редактирования.
Пока все хорошо. Тем не менее, большая проблема, с которой я сталкиваюсь, заключается в том, что я не могу использовать двухстороннюю база данных с свойством SelectedItem Treeview, так как он читается только.
Как я могу чисто сохранить редакторы текстового поля синхронизации с моим объектом, который связан с Treeview?
Решение
Я не думаю, что вам нужно выполнить двустороннюю база данных на самой выборочной set
изменяет объект надлежащим образом. Это должно быть проще, чем иметь дело с объектом в целом.
Другие советы
Ваш XML -поток должен быть представлен как свойство в вашем узеле SelectedItem, и ваш текстовый поле должен быть связан с этим. SelectedItem только для чтения, но объект, к которому он ссылается, нет. Если вы связываете это свойство, вы сможете правильно повлиять на свои изменения. Это будет сделано в данных DataTemplates и HiearchicalDatatemplates, которые вы используете, поскольку они связаны с базовым представлением данных узлов, которые вы представляете с помощью Treeview.