|
Binding
|
|||
---|---|---|---|
#18+
Небольшая проблемка. Имею контейнер, в котором находится кнопка и текстовый бокс. Как на уровне привязки передать объект текст-бокса в кнопку. Например, сам контейнер я могу привязать к кнопке, как показано ниже в XAML-е. Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Панель сразу находится. Но, для того чтобы добраться до бокса нужно от контейнера пойти "вниз". Как найти одновременно контейнер, и тут-же искать в списке его дочек - я так не умею! Вариант с ElementName не прокатывает, так как элменты не имеют имени. Подскажите плиз! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2014, 13:13 |
|
Binding
|
|||
---|---|---|---|
#18+
ЧитательX, если я правильно понял, текст из текстбокса должен отображаться на кнопке ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2014, 13:32 |
|
Binding
|
|||
---|---|---|---|
#18+
В том числе и это. Вообще мне нужно "под кнопкой" провести некоторую обработку и, в том числе, "поуправлять" текстбоксом. Например, покрасить его, поуправлять его IsReadOnly и т.д. Этот конейнер с контролами является частью шаблона. Поэтому, когда реально создаются экземпляры шаблона, то контейнеров с этими контролами становится много (каждый экземпляр шаблона дает StackPanel и кнопку с боксом). Насколько я понимаю, искать в форме их по именам бесполезно. Как вязаться с контролами не через RelativeSource Ancestor.., который ищет от "дочки" "вверх" по контейнерам, а например "по горизонтали" в одном контейнере или от узла к его дочерним контролам? Я слышал высказывания, что в WPF можно вязать что угодно с чем угодно. Вот вроде совсем простая ситуация, но я в тупике. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2014, 14:21 |
|
Binding
|
|||
---|---|---|---|
#18+
Binding ElementName смотри. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2014, 18:57 |
|
Binding
|
|||
---|---|---|---|
#18+
user7320Binding ElementName смотри. Да действительно ElementName работает. Я по ошибке думал, что если элементы находятся в шаблоне, то искать их по именам бесполезно (при создании экземпляров данных появляется много TextBox-ов с одним именем). Но оно как-то работает! Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
DoctorZelen http://www.cyberforum.ru/wpf-silverlight/thread744160.html может это поможет Это решение - доступ к элементу в коде. Но, такое решение мне знакомо. Например так: Код: c# 1. 2. 3. 4. 5. 6.
Но, я хотел знать как это сделать в XAML. А кроме того, в данном случае нужно указывать индекс нужного элемента в контейнере, а это уже не очень хорошо. Что-то добавил в контейнер - не забудь подвинуть индекс. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2014, 07:04 |
|
Binding
|
|||
---|---|---|---|
#18+
ЧитательXuser7320Binding ElementName смотри. Да действительно ElementName работает. Я по ошибке думал, что если элементы находятся в шаблоне, то искать их по именам бесполезно (при создании экземпляров данных появляется много TextBox-ов с одним именем). Но оно как-то работает! Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Name в XAML это что-то типа имени переменной в C#. Элементы DataGridColumn создаются в цикле, а в пределах одной итерации цикла переменная может "повторяться" сколько угодно раз: Код: c# 1. 2. 3. 4.
Это примерное объяснение. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2014, 09:53 |
|
|
start [/forum/topic.php?fid=21&msg=38611243&tid=1441147]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
145ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
others: | 292ms |
total: | 516ms |
0 / 0 |