У меня есть форма в моем приложении WPF, что я должен добавить кнопку «Изменить». Прямо сейчас форма всегда находится в режиме редактирования, и нет режима просмотра. Однако по разным причинам мне нужно сохранить режим контроля в режиме просмотра до тех пор, пока пользователь не нажмет кнопку «Изменить», а затем не скроет кнопку «Редактировать» и не отобразит кнопку «Сохранить» на своем месте.Может ли результат преобразования MultiValueConverter быть преобразован?
У моей формы уже есть bool DependencyProperty
, называемый CanModify
, что верно, когда разрешения пользователя дают им право редактировать запись, отображаемую в форме. Я добавляю новый bool DependencyProperty
под названием InEditMode
, который по умолчанию будет false. Скрытие и включение кнопок довольно прямолинейно, но у меня есть этот элемент управления ComboBox
, который я хочу скрыть, если пользователь не может редактировать запись, или если они могут ее редактировать, а форма находится в режиме просмотра. Для этого мне нужно преобразовать результат ANDing двух свойств bool вместе, а затем преобразовать его в значение Visibility
.
У меня уже есть класс, который реализует IValueConverter
и преобразует bool в Visibility
. Я только что написал класс, который реализует IMultiConverter
, который принимает массив bools и ANDS их вместе (или ORs их, в зависимости от значения параметра).
Что бы я хотел сделать, это взять результат IMultiConverter
и поместить его через IValueConverter
, чтобы преобразовать результат в Visibility
. Я могу это сделать? Или мне было бы лучше делать И в коде позади нового DependencyProperty
?
Tony
Это интересный взгляд по проблеме. Я закончил тем, что добавил еще одно логическое свойство, значение которого задано, когда два других свойства меняют свое значение. Я не отмечаю ваш ответ как ответ, потому что это не то, что я сделал, однако, я даю вам верхнюю часть из-за первой строки вашего ответа. Мой конвертер уже использует параметр для передачи «AND» или «OR» для операции, используемой при объединении bools, привязанных к MultiBinding. –