У меня есть TreeView с 3 уровнями, который использует мультисвязывание для генерации для каждого экземпляра класса A
2 TreeViewItems как список класса B. И каждый список содержит элементы, скажем, класса C.
Я могу добавлять элементы класса C для каждого списка в моем пользовательском интерфейсе, пока списки (класс B) свернуты.
Я даже могу добавить класс C для каждого списка (класс B), пока весь TreeViewItem (класс A) свернут.
Моя проблема в том, что мне нужно иметь доступ ко всем элементам TreeViewItem, даже если они свернуты (например, чтобы выбрать их).
Я пытался сделать это, но я столкнулся со следующими проблемами:
1- Все невидимые TreeViewItems (классов B и C) еще не созданы как TreeViewItems. (Как я могу их сделать?)
2 - Когда вы расширяете TreeViewIiem класса B на ПЕРВЫЙ РАЗ, вы получаете возможность видеть все его элементы (Class C) как TreeViewItems. (Очевидно, тривиальные)
3 - Свертывание после Расширение любого класса B (есть только 2) в специфическом Классе TreeViewItem приведет к возможности добавлять экземпляры класса C как TreeViewItems , даже если весь TreeViewItem (класс A) свернут. (Пока вы остаетесь в этом TreeViewItem класса A)
4- Если вы измените выбранный класс A (т.е. если вы щелкнете по другому TreeViewItem, у которого предок класса A отличается от выбранного), все невидимые элементы TreeViewItem ранее выбранного класса A будут потеряны. и вы можете начать снова с шага 1 во вновь выбранном классе А.
Так как же я могу выбрать любой TreeViewItem класса C или B в любой момент?
Спасибо