Добрый день!!
Каким образом получить доступ и изменить элементы DataTemplate?
У меня есть UserControl, в его ресурсах хранится несколько шаблонов. В классе этого моего контрола есть функция, которая должна менять элементы этого контрола, но как к ним обратиться если они создаются в дататемплейте???
В нете нашла примеры только для listbox.
Заранее спасибо!
Здравствуйте, Ljur, Вы писали:
L>Добрый день!! L>Каким образом получить доступ и изменить элементы DataTemplate? L>У меня есть UserControl, в его ресурсах хранится несколько шаблонов. В классе этого моего контрола есть функция, которая должна менять элементы этого контрола, но как к ним обратиться если они создаются в дататемплейте??? L>В нете нашла примеры только для listbox. L>Заранее спасибо!
Поподробнее задачу, пожалуйста. Есть вероятность, что шаблоны менять не надо.
Здравствуйте, Codechanger, Вы писали:
C>Здравствуйте, Ljur, Вы писали:
L>>Добрый день!! L>>Каким образом получить доступ и изменить элементы DataTemplate? L>>У меня есть UserControl, в его ресурсах хранится несколько шаблонов. В классе этого моего контрола есть функция, которая должна менять элементы этого контрола, но как к ним обратиться если они создаются в дататемплейте??? L>>В нете нашла примеры только для listbox. L>>Заранее спасибо!
C>Поподробнее задачу, пожалуйста. Есть вероятность, что шаблоны менять не надо.
Может конечно и надо переделать нужное мне поведение как то покрасивее, но менять сейчас нет времени и мне просто надо вот что: в коде юзерконтрола обратиться к элементу, который находится в шаблоне, который применен к одной из частей юзерконтрола.
Я думала что можно как то так:
DataTemplate myDataTemplate = (DataTemplate)(this.FindResource("TemplateName"));
TextBlock txtVal = (TextBlock)myDataTemplate.FindName("txtValName") as TextBlock;
и меняем свойства txtVal ....
Здравствуйте, Ljur, Вы писали:
L>Может конечно и надо переделать нужное мне поведение как то покрасивее, но менять сейчас нет времени и мне просто надо вот что: в коде юзерконтрола обратиться к элементу, который находится в шаблоне, который применен к одной из частей юзерконтрола. L>Я думала что можно как то так: L> DataTemplate myDataTemplate = (DataTemplate)(this.FindResource("TemplateName")); L>TextBlock txtVal = (TextBlock)myDataTemplate.FindName("txtValName") as TextBlock; L>и меняем свойства txtVal ....
Всё же элементарно. Это же DataTemplate. Привяжи этот TextBox к свойству модели.
L>но не получается.
Конечно не получается, потому что ты как-то редко включаешь голову, уж извини. От тебя здесь столько вопросов, что складывается впечатление будто автором программы выступает RSDN, а не ты. Только не пойми меня неправильно, это не наезд. Просто хочу посоветовать тебе больше думать самой и разбираться, а не бежать на форум при малейшем затруднении. Только так ты освоишь WPF и всё остальное...
Здравствуйте, MxMsk, Вы писали:
MM>Здравствуйте, Ljur, Вы писали:
L>>Может конечно и надо переделать нужное мне поведение как то покрасивее, но менять сейчас нет времени и мне просто надо вот что: в коде юзерконтрола обратиться к элементу, который находится в шаблоне, который применен к одной из частей юзерконтрола. L>>Я думала что можно как то так: L>> DataTemplate myDataTemplate = (DataTemplate)(this.FindResource("TemplateName")); L>>TextBlock txtVal = (TextBlock)myDataTemplate.FindName("txtValName") as TextBlock; L>>и меняем свойства txtVal .... MM>Всё же элементарно. Это же DataTemplate. Привяжи этот TextBox к свойству модели.
L>>но не получается. MM>Конечно не получается, потому что ты как-то редко включаешь голову, уж извини. От тебя здесь столько вопросов, что складывается впечатление будто автором программы выступает RSDN, а не ты. Только не пойми меня неправильно, это не наезд. Просто хочу посоветовать тебе больше думать самой и разбираться, а не бежать на форум при малейшем затруднении. Только так ты освоишь WPF и всё остальное...
Программа которую надо сделать слишком большая для первой программы на wpf, а учитывая что и с дотнетом до этого дела не имела, то вопросов у меня действительно много, и голова частенько устает думать. Когад понимаешь что чтото просто, но не знаешь как, почему бы не спросить? Ммм? Кто знает не пожалеет пару минут ответить, кто не знает пройдет мимо. Ну уж извините что я тут оказывается кого то потревожила своими вопросами. Поищу другой форум.
Здравствуйте, Ljur, Вы писали:
L>Программа которую надо сделать слишком большая для первой программы на wpf, а учитывая что и с дотнетом до этого дела не имела, то вопросов у меня действительно много, и голова частенько устает думать. Когад понимаешь что чтото просто, но не знаешь как, почему бы не спросить? Ммм? Кто знает не пожалеет пару минут ответить, кто не знает пройдет мимо. Ну уж извините что я тут оказывается кого то потревожила своими вопросами. Поищу другой форум.
Зря ты так. Я же объяснил свою позицию. Никто тебе не запрещает задавать вопросы (боже упаси!), мне лишь захотелось дать тебе совет, который как мне кажется поможет тебе в освоении WPF. Позволь уж мне тоже иметь свою точку зрения, равно как и ты можешь иметь свою.
Здравствуйте, Ljur, Вы писали:
L>Программа которую надо сделать слишком большая для первой программы на wpf, а учитывая что и с дотнетом до этого дела не имела, то вопросов у меня действительно много, и голова частенько устает думать. Когад понимаешь что чтото просто, но не знаешь как, почему бы не спросить? Ммм? Кто знает не пожалеет пару минут ответить, кто не знает пройдет мимо. Ну уж извините что я тут оказывается кого то потревожила своими вопросами. Поищу другой форум.
Что-то совсем нехорошо вышло. Если я действительно серьезно задел, то приношу свои извинения. И в мыслях не было никого обидеть
Здравствуйте, MxMsk, Вы писали:
MM>Что-то совсем нехорошо вышло. Если я действительно серьезно задел, то приношу свои извинения. И в мыслях не было никого обидеть
Да, обиделась. Проблему решила с помощью форума стэковерфлоу.ком. На английском мне тяжелее разбираться, но там нашла несколько вариантов моего вопроса и несколько решений. И в ответах там никаких эмоций, наверное потому что в инглише родовые окончаний отсутсвуют.
Здравствуйте, Ljur, Вы писали:
L>Здравствуйте, MxMsk, Вы писали:
MM>>Что-то совсем нехорошо вышло. Если я действительно серьезно задел, то приношу свои извинения. И в мыслях не было никого обидеть
L>Да, обиделась. Проблему решила с помощью форума стэковерфлоу.ком. На английском мне тяжелее разбираться, но там нашла несколько вариантов моего вопроса и несколько решений. И в ответах там никаких эмоций, наверное потому что в инглише родовые окончаний отсутсвуют.
В англоязычном Интернете много людей, которые из года в год обсуждают вопросы и темы для новичков, создают обучающий материал — в Рунете таких единицы. Я бы лично не смог постоянно разжёвывать другим то, что самому давно уже ясно.
Проблема этого форума в том, что люди зачастую пытаются "забивать шурупы молотками" и отвечать на конкретные вопросы "что использовать, молоток или киянку?" не хочется — потому что автор вопроса уже слишком заблудился, чтобы его выводить на правильную тропинку, а предлагать какие-нибудь костыли в качестве ответа совесть не позволяет. Проще сразу спросить его, чего он хочет получить в конечном итоге (для пользователя приложения), и дать ему решение проблемы в несколько строк или указать правильное направление работы.
Такое ощущение, что люди ничего не изучают, а сразу бросаются писать код для продакшен. С WPF такое точно не пройдёт и потом придётся выкидывать гору написанного кода.
Здравствуйте, Vladek, Вы писали:
V>В англоязычном Интернете много людей, которые из года в год обсуждают вопросы и темы для новичков, создают обучающий материал — в Рунете таких единицы. Я бы лично не смог постоянно разжёвывать другим то, что самому давно уже ясно.
Да, я вот сама не умею и не люблю объяснять что то в письменной форме. И очень благодарна тем, кто это все таки делает.
V>Проблема этого форума в том, что люди зачастую пытаются "забивать шурупы молотками" и отвечать на конкретные вопросы "что использовать, молоток или киянку?" не хочется — потому что автор вопроса уже слишком заблудился, чтобы его выводить на правильную тропинку, а предлагать какие-нибудь костыли в качестве ответа совесть не позволяет. Проще сразу спросить его, чего он хочет получить в конечном итоге (для пользователя приложения), и дать ему решение проблемы в несколько строк или указать правильное направление работы.
часто настолько все непонятно, что непонятно как вопрос задать. Но бывает так, что пока разберешься как спросить, найдет озарение и поймешь как сделать.
V>Такое ощущение, что люди ничего не изучают, а сразу бросаются писать код для продакшен.
у меня такое ощущение, что на этом форуме все живут в идеальных мирах, где все пишут идеальный код, для идеально поставленных задач. Я вообще собеседовалась на абсолютно другие технологии, а через месяц мне вдруг поставили такую задачу, написать на wpf программу, довольно объемную (и в фирме больше никто не знает этой технологии), кроме впф там еще много для меня нового. И что, взять и уволиться сразу? Договорились, что будут и другие проекты, а если все таки нет, то...буду думать что делать.
V> С WPF такое точно не пройдёт и потом придётся выкидывать гору написанного кода.
Придется пройти , главное чтобы работало и не падало, а красивый код сделаю в следующей версии.
И не из таких ситуаций выкручивались, под всеобщую критику и высказывания: у тебя ничего не получится.