|
Как добраться до объекта, который находится внутри DataTemplate?
|
|||
---|---|---|---|
#18+
В App.xaml определен ComboBox с определенным именем Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
В нужном окне добавляю этот Template в StackPanel: Код: c# 1. 2. 3. 4. 5. 6.
Но добраться до этого комбобокса не могу. Надо получить индекс выделенного элемента в коде. FindName для StackPanel не помогает, через LogicTreeHelper тоже не получилось. Нужно рекурсивно проходить по визуальному дереву, другого способа нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2020, 16:41 |
|
Как добраться до объекта, который находится внутри DataTemplate?
|
|||
---|---|---|---|
#18+
У комбика есть свойство SelectedIndex вроде ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2020, 16:52 |
|
Как добраться до объекта, который находится внутри DataTemplate?
|
|||
---|---|---|---|
#18+
Roman Mejtes, Это понятно, я не знаю как сам комбобокс получить в коде окна, где я использую DataTemplate, тогда как сам комбобокс определен в App.xaml ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2020, 16:59 |
|
Как добраться до объекта, который находится внутри DataTemplate?
|
|||
---|---|---|---|
#18+
Евгений, Екатеринбург, а зачем вам его вообще получать то? свяжите поле SelectedIndex с свойством вашей модели. Если у вас возникает такая потребность, значит вы делайте неправильно. Найти этот ComboBox в визуальном дереве возможно, но делать это не нужно. Код: c# 1. 2. 3. 4. 5. 6.
и вот такой вот кода быть не должно. Для этого есть XAML ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2020, 17:38 |
|
Как добраться до объекта, который находится внутри DataTemplate?
|
|||
---|---|---|---|
#18+
Roman Mejtes а зачем вам его вообще получать то? свяжите поле SelectedIndex с свойством вашей модели. Да, что-то я перемудрил. И все-таки, если мне когда-то понадобится получить ссылку на объект, то как это делать? Roman Mejtes и вот такой вот кода быть не должно. Для этого есть XAML У меня иерархическая структура классов, в зависимости от подклассов я вывожу набор нужных панелей. Грубо: есть класс животных. Если это птица, то добавляют панель "Крылья", если это перелетная птица, то добавляю панель "Длина перелета". Как я понимаю, это не сделать чисто на xaml без динамического кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2020, 17:48 |
|
Как добраться до объекта, который находится внутри DataTemplate?
|
|||
---|---|---|---|
#18+
Евгений, Екатеринбург Roman Mejtes а зачем вам его вообще получать то? свяжите поле SelectedIndex с свойством вашей модели. Да, что-то я перемудрил. И все-таки, если мне когда-то понадобится получить ссылку на объект, то как это делать? Roman Mejtes и вот такой вот кода быть не должно. Для этого есть XAML У меня иерархическая структура классов, в зависимости от подклассов я вывожу набор нужных панелей. Грубо: есть класс животных. Если это птица, то добавляют панель "Крылья", если это перелетная птица, то добавляю панель "Длина перелета". Как я понимаю, это не сделать чисто на xaml без динамического кода. найти элемент в визуальном дереве, можно вот так, но если вы его используйте, стоит задуматься о том, что вы делайте неправильно, крайне редко бывает необходимость найти объект в визуальном дереве. Обычно такое реализуют при создании элемента управления. Тем более, что поиск вниз по дереву очень затратный, поиск обычно осуществляется вверх (к предкам). Для относительного связывания или поиска контейнера и т.д. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Ваша проблема в том, что у вас нет ViewModel, а WPF очень сильно заточен на шаблон MVVM, не применяя этот шаблон, программировать в WPF очень неудобно Модель представления для того и существует, чтоб упростить визуализацию этих объектов. Работы будет в 2 раза больше, но система станет гибкой, связанность представления и модели будет сильно уменьшена. А модель представления может быть универсальной для всех элементов модели такого типа. Представьте как бы вы хотели видеть свой интерфейс и какие данные, в каком виде было бы наиболее удобно иметь, вот это и есть ваша ViewModel. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2020, 12:41 |
|
|
start [/forum/topic.php?fid=21&msg=39932724&tid=1440287]: |
0ms |
get settings: |
8ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 142ms |
0 / 0 |