Nano Hash - криптовалюты, майнинг, программирование

Команды WPF и пользовательские элементы управления

Я делаю настраиваемый элемент управления, который представляет собой расширяемую/сворачиваемую панель, которую затем можно заполнить другими элементами управления. Я не уверен, как подключить команду развертывания/свертывания к кнопке.

Я использовал это, чтобы заставить панель слушать:

    CommandManager.RegisterClassInputBinding(GetType(Button), New InputBinding(ToggleBtnCommand, New MouseGesture(MouseAction.LeftClick)))
    CommandManager.RegisterClassCommandBinding(GetType(Button), New CommandBinding(ToggleBtnCommand, AddressOf btnToggleState))

Это работает, пока я использую только одну панель для каждого окна. Если я использую больше панелей, все они разворачиваются или сворачиваются при нажатии кнопки. Как я могу заставить элемент управления понять, что только тот, который содержит нажатую кнопку («командный триггер»), должен слушать команду?


  • В вашем ToggleBtnCommand (это действительно мимоходом, но я бы лично удалил Btn из имени, поскольку команды не зависят от пользовательского интерфейса) - обработчик выполнения, у вас будет ExecutedRoutedEventArgs в качестве второго аргумента, сравнив его Source и OriginalSource, вы можете сказать, является ли это «локальная» команда или нет. 13.12.2011
  • Еще я бы попробовал взломать стандартное управление Expender, вы можете настроить его до почти неузнаваемого состояния :) 13.12.2011
  • @Dmirty: хороший вопрос, но вы должны были опубликовать ответ, а не комментарий 13.12.2011
  • Что сказал Дэйв. В противном случае я не могу дать вам заслуженную репутацию. :) 14.12.2011

Ответы:


1

В вашем ToggleBtnCommand (это действительно мимоходом, но я бы лично удалил Btn из имени, поскольку команды не зависят от пользовательского интерфейса) - обработчик выполнения, у вас будет ExecutedRoutedEventArgs в качестве второго аргумента, сравнив его Source и OriginalSource, вы можете сказать, является ли это «локальная» команда или нет.

[ Я скопировал этот комментарий к ответу, чтобы пометить вопрос как отвеченный — это портит мой уровень принятия. :) ]

26.01.2012
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..