Нужна дополнительная помощь с привязкой нескольких CommandParameters с помощью MultiBinding
-
24-09-2019 - |
Вопрос
Мне нужен обработчик команд для ToggleButton, который может принимать несколько параметров, а именно свойство IsChecked указанного ToggleButton, а также постоянное значение, которое может быть строкой, байтом, int ... не имеет значения.
родовое словоЗатем я наткнулся на еще один вопрос, на который ответил Кент Бугарт , а затем я начал думать о способах обойти это.
Один из возможных способов - не использовать MVVM и просто добавить свойство Tag в мой ToggleButton, и в этом случае моя привязка MultiBinding будет выглядеть следующим образом:
родовое слово Кент сделал комментарий примерно так: «если вы используете MVVM, вы сможете обойти эту проблему». Однако я не уверен, что это вариант для меня, хотя я принял MVVM в качестве своего шаблона WPF для выбора необходимости .
Причина, по которой я говорю это, заключается в том, что у меня более одного ToggleButton в UserControl, и каждая из команд ToggleButtons должна вызывать одну и ту же функцию. Но поскольку это ToggleButtons, я не могу использовать свойство, привязанное к IsChecked в ViewModel, потому что я не знаю, какой из них был нажат последним. Думаю, я мог бы добавить еще одну частную собственность, чтобы отслеживать это, но это кажется немного глупым. Что касается константы, я, вероятно, мог бы избавиться от этого, если бы предложил идею отслеживания, но не уверен, что есть другой способ обойти это.
Есть ли здесь для меня хорошие предложения? :)
РЕДАКТИРОВАТЬ - хорошо, мне нужно обновить привязки, которые по-прежнему работают некорректно:
родовое словоIsChecked работал, но не Tag. Я только что понял, что Тег - это строка ... ага. Теперь работает! Ключевым моментом было использование RelativeSource Self .
Решение
Как объяснялось выше, я разобрался.Мне пришлось использовать Self
для RelativeSource
, и это помогло.