Добрый день, а есть-ли альтернатива для EventTrigger, но такая, чтобы внутри можно было сеттеры писать, а не сториборд? Просто есть такое дело,что при попадании фокуса на различные списки в окне, у специально выделенного списка должны меняться привязки и DataTemplate, просто я не знаю как еще узнать кто сейчас в фокусе без отлова события GotFocus
Здравствуйте, Dron247, Вы писали:
D>Добрый день, а есть-ли альтернатива для EventTrigger, но такая, чтобы внутри можно было сеттеры писать, а не сториборд? Просто есть такое дело,что при попадании фокуса на различные списки в окне, у специально выделенного списка должны меняться привязки и DataTemplate, просто я не знаю как еще узнать кто сейчас в фокусе без отлова события GotFocus
Используй обычный триггер, реагирующий на изменение свойства IsKeyboardFocused
Re[2]: [WPF] Альтернатива для EventTrigger
От:
Аноним
Дата:
09.02.11 19:26
Оценка:
MM>Используй обычный триггер, реагирующий на изменение свойства IsKeyboardFocused
А как обычный триггер можно использовать в DataTemplate, он вроде бы требует наличие имени, которое в Template объявить нельзя.
Здравствуйте, Аноним, Вы писали:
А>А как обычный триггер можно использовать в DataTemplate, он вроде бы требует наличие имени, которое в Template объявить нельзя.
О каком имени речь?
Здравствуйте, Dron247, Вы писали:
D>Добрый день, а есть-ли альтернатива для EventTrigger, но такая, чтобы внутри можно было сеттеры писать, а не сториборд? Просто есть такое дело,что при попадании фокуса на различные списки в окне, у специально выделенного списка должны меняться привязки и DataTemplate, просто я не знаю как еще узнать кто сейчас в фокусе без отлова события GotFocus D>Хотя-б как гуглить это подскажите
Не знаю в тему или нет, но можно делать Storyboard с нулевой длительностью. А ObjectAnimationUsingKeyFrames позволит задать значение любого типа. Это и будет почти что-то типа сеттера, только больше писанины.
Нашел решение, правда из области хаков http://wex.codeplex.com/
Очень понравилось, то что нужно, плохо, что тянет кучу либ, но их можно ILMerge'ем с исполняемой сборкой слепить. Правда программа вместо нынешних 700 кб(вместе со внедренной кучей картинок) стала весить полтора метра, а к релизу будет и все два. Но учитывая мой опыт столкновения с монстрами и по 20 метров — это ничто.
Здравствуйте, Dron247, Вы писали:
D>Нашел решение, правда из области хаков D>http://wex.codeplex.com/ D>Очень понравилось, то что нужно, плохо, что тянет кучу либ, но их можно ILMerge'ем с исполняемой сборкой слепить. Правда программа вместо нынешних 700 кб(вместе со внедренной кучей картинок) стала весить полтора метра, а к релизу будет и все два. Но учитывая мой опыт столкновения с монстрами и по 20 метров — это ничто.
Что ты чудишь? Я тебе уже привел простой пример, как узнать, что элемент получил фокус. А ты полез в какие-то дебри ради решения элементарной задачи.
Re[4]: [WPF] Альтернатива для EventTrigger
От:
Аноним
Дата:
11.02.11 17:44
Оценка:
Здравствуйте, MxMsk, Вы писали:
MM>Здравствуйте, Аноним, Вы писали:
А>>А как обычный триггер можно использовать в DataTemplate, он вроде бы требует наличие имени, которое в Template объявить нельзя. MM>О каком имени речь?
<DataTemplate>
<Triggers>
<TextBox Name="хрен тебе имя в datatemplate не буду компилиться" />
<Trigger>
<Setter TargetName="хочу имя"></Setter>
</Trigger>
</Trigger>
</DataTemplate>
Здравствуйте, Аноним, Вы писали:
А><DataTemplate> А> <Triggers> А> <TextBox Name="хрен тебе имя в datatemplate не буду компилиться" /> А> <Trigger> А> <Setter TargetName="хочу имя"></Setter> А> </Trigger> А> </Trigger> А></DataTemplate>
Оригинальный XAML. Почему дочерним тегом в DataTemplate выступает Triggers? Если предположить, что он попал туда по ошибке, подход с Name и TargetName внутри шаблона работает.
Re[6]: [WPF] Альтернатива для EventTrigger
От:
Аноним
Дата:
11.02.11 21:22
Оценка:
Здравствуйте, MxMsk, Вы писали:
MM>Здравствуйте, Аноним, Вы писали:
А>><DataTemplate> А>> <Triggers> А>> <TextBox Name="хрен тебе имя в datatemplate не буду компилиться" /> А>> <Trigger> А>> <Setter TargetName="хочу имя"></Setter> А>> </Trigger> А>> </Trigger> А>></DataTemplate> MM>Оригинальный XAML. Почему дочерним тегом в DataTemplate выступает Triggers? Если предположить, что он попал туда по ошибке, подход с Name и TargetName внутри шаблона работает.
А можно пример для ItemsList очень интересно как триггер будет понимать к какому name ему привязываться
Здравствуйте, MxMsk, Вы писали:
MM>Здравствуйте, Dron247, Вы писали:
D>>Нашел решение, правда из области хаков D>>http://wex.codeplex.com/ D>>Очень понравилось, то что нужно, плохо, что тянет кучу либ, но их можно ILMerge'ем с исполняемой сборкой слепить. Правда программа вместо нынешних 700 кб(вместе со внедренной кучей картинок) стала весить полтора метра, а к релизу будет и все два. Но учитывая мой опыт столкновения с монстрами и по 20 метров — это ничто. MM>Что ты чудишь? Я тебе уже привел простой пример, как узнать, что элемент получил фокус. А ты полез в какие-то дебри ради решения элементарной задачи.
Объясни как использовать IsKeyboardFocused на примере, (только проверь код) так, чтобы было лучше чем:
Здравствуйте, Dron247, Вы писали:
D>Объясни как использовать IsKeyboardFocused на примере, (только проверь код) так, чтобы было лучше чем:
Маловато информации для стопроцентной проверки. В шаблоне кнопки и textbox-ов я использую следующий триггер:
Вот только мне кажется, вопрос сформулирован не совсем правильно, отчего у меня возникло неправильное понимание. Альтернатива EventTrigger с сеттерами — это остальные триггеры. Тебе же, судя по приведенному XAML, нужно задействовать триггер, но не в шаблоне или стиле, я напрямую в элементе. Так? Тогда использование Interaction — один из лучших вариантов.
D> и я признаю себя дураком.
Мне этого не требуется.
Здравствуйте, MxMsk, Вы писали:
MM>Вот только мне кажется, вопрос сформулирован не совсем правильно, отчего у меня возникло неправильное понимание. Альтернатива EventTrigger с сеттерами — это остальные триггеры. Тебе же, судя по приведенному XAML, нужно задействовать триггер, но не в шаблоне или стиле, я напрямую в элементе. Так?
Да, вы правы, мне это нужно для динамической смены привязок. Не хотелось городить костыли, так как у меня все данные так или иначе представляют собой списки. И мне на ходу нужно переключать Binding, DataTemplate и ItemsPanel у единственного списка, в который выводится вся информация. Тип информации зависит от того, что пользователь выберет пользователь. Однако, спасибо, за подсказку с IsKeyboardFocused, может пригодиться для решения проблемы с получением элементов подэлементов дерева.