Как я могу предоставить несколько условий для запуска данных в WPF?
wpf
datatrigger
Сумеру Суреш
источник
источник
@jasonk - если вы хотите иметь "или", то отмените все условия, так как (A и B) <=> ~ (~ A или ~ B)
но если у вас есть значения, отличные от логических, попробуйте использовать преобразователи типов:
Вы можете использовать значения в методе Convert любым удобным для вас способом для создания условия, которое вам подходит.
источник
conditionConverter
? Как мы указываем «Портленд» и «ИЛИ» в качестве двух нашихor
вариантов в этом примере?Чтобы уточнить ответ @ serine и проиллюстрировать работу с нетривиальным многозначным условием: мне нужно было показать наложение «затемнения» на элемент для логического условия
NOT a AND (b OR NOT c)
.Чтобы реализовать эту логику, я сделал обобщение с
IMultiValueConverter
именем (неловко), чтобы соответствовать моей логикеВ XAML я использую это
MultiDataTrigger
в<Style><Style.Triggers>
ресурсИ ради полноты, мой конвертер определен в
ResourceDictionary
источник
ЭТОТ ОТВЕТ ТОЛЬКО ДЛЯ АНИМАЦИЙ.
Если вы хотите реализовать логику И, вы должны использовать MultiTrigger, вот пример:
Предположим, мы хотим выполнить некоторые действия, если свойство Text = "" (пустая строка) И IsKeyboardFocused = "False", тогда Ваш код должен выглядеть следующим образом:
Если вы хотите реализовать логику ИЛИ, есть несколько способов, и это зависит от того, что вы пытаетесь сделать:
Первый вариант - использовать несколько триггеров.
Итак, предположим, что вы хотите что-то сделать, если либо Text = "" OR IsKeyboardFocused = "False",
то ваш код должен выглядеть примерно так:
Но проблема в том, что будет делать , если я хочу сделать что - то , если любой текст не является нулевым или IsKeyboard = «True»? Это может быть достигнуто вторым подходом:
вспомните правило де Моргана, которое гласит! (! X &&! Y) = x || у.
Таким образом, мы будем использовать его для решения предыдущей проблемы, написав мульти-триггер, который срабатывает, когда Text = "" и IsKeyboard = "True", и мы выполним наши действия в EXIT ACTIONS , например:
источник