Как я могу сделать параметризованные команды в универсальной платформе Windows без MVVM-фреймворков? Я попытался реализовать класс RelayCommand, но пространство имен System.Windows.Input не имеет класса CommandManager.Универсальная платформа Windows Platform с параметрами
ответ
Если вы не хотите использовать фреймворк, вам необходимо реализовать интерфейс System.Windows.Input.ICommand
.
Параметры команды могут передаваться свойством CommandParameter
. Командующему нет необходимости. Если вы используете одностороннюю привязку для параметра, кнопка будет автоматически включена/отключена при изменении привязки. Для чего-нибудь еще поднимите событие CanExecuteChanged
.
Конечно, в более сложном сценарии вам также потребуется реализовать некоторое управление состоянием для этой команды, что проще, если команды определены в режиме просмотра или использования, используют какой-то собственный реализованный менеджер команд ,
упрощенный пример
Вот упрощенный пример, как использовать кнопку с x:Bind
связывания. Нет модели просмотра или диспетчера команд.
Example.xaml:
<Button x:Name="Test" Command="{x:Bind FirstCommand}" CommandParameter="{x:Bind SelectedItem, Mode=OneWay">
<TextBlock>Test</TextBlock>
</Button>
Example.xaml.cs:
public sealed partial class Example : Page {
public SampleCommand FirstCommand { get; set; } =
new SampleCommand();
public object SelectedItem { get; set; }
public StandardProjectList() {
this.InitializeComponent();
}
}
SampleCommand.cs:
public class SampleCommand : ICommand {
public event EventHandler CanExecuteChanged;
public bool CanExecute(object parameter) {
return parameter != null;
}
public void Execute(object parameter) {
if (CanExecute(parameter))
//...
}
}
Это похоже на довольно хороший ответ, но сэкономить на этом усилие. Вышеупомянутый вопрос ленив и без достоинств. Он скорее всего будет закрыт и автоматически удален. Ваш ответ исчезнет вместе с ним. –
@jk хороший ответ требует хорошего вопроса. На самом деле это был отличный вопрос. Не удивительно, что это не было удалено, и ответ не исчез! – usefulBee
- 1. Универсальная платформа Windows Platform KeepAlive
- 2. Xamarin Forms Глобальные стили Универсальная платформа Windows
- 3. Универсальная платформа Windows - CustomHidDevice (ошибка: значение заблокировано)
- 4. x: привязка к UWP (универсальная платформа Windows)
- 5. Универсальная платформа для Windows webView override NavigationStarting
- 6. Поддержка GMock и Gtest для Windows 10 Универсальная платформа
- 7. Универсальная платформа Windows (UWP) записывает изображения в сектора диска
- 8. Toggle Button Двухсторонняя привязка не работает (универсальная платформа Windows)
- 9. Универсальная платформа Windows - сохранение и извлечение текста в списке
- 10. Синтаксис Uri в ResourceDictionary Source (Универсальная платформа Windows)
- 11. UWP [Универсальная платформа Windows] RSA AsymmetricKeyAlgorithmProvider импорт открытого ключа
- 12. Универсальная платформа для Windows (UWP) Touch Touch клавиатура
- 13. Универсальная платформа для Windows/UAP: что такое AOT?
- 14. Универсальная платформа Windows ZipFile.CreateFromDirectory создает пустой ZIP-файл
- 15. Универсальная платформа Windows (UWP) эквивалентна для получения основного приложения UI
- 16. Универсальная, но простая игровая платформа для начинающих?
- 17. Redis in windows platform
- 18. Универсальная платформа для Windows. Сохранение файлов (любого типа) в удаленном хранилище - USB (или HDD)
- 19. Лучшая платформа для RPG/RTS Platform Dev?
- 20. windows 10 (modern) Универсальное приложение Platform Platform (UWP)
- 21. Как реализовать однопользовательское меню Windows 10 в приложении «Универсальная платформа Windows»
- 22. Что означает на «Универсальная платформа для Windows (UWP) приложение является опыт для Windows»
- 23. Платформа Windows Azure, последняя версия?
- 24. Универсальная платформа Windows с .NET. Нативные броски. Внутренняя ошибка компилятора: MCG0024: UnresolvableTypeReference.
- 25. Универсальная платформа Windows - UI не обновляется при возврате с разных страниц
- 26. Платформа Windows Server 2003 SDK
- 27. Windows 10 универсальная клавиатура для клавиатуры
- 28. Максимальная длина пароля для JSON - платформа IBM MobileFirst Platform 6.3
- 29. C# универсальная платформа аудио слияния или вход в видео
- 30. Работает Универсальная платформа Windows (UWP) на Linux, Mac, ... на основе dotNET Core?
Добро пожаловать на переполнение стека. Можете ли вы сделать свой вопрос более ясным? Что вы пробовали? Что такое сообщение об ошибке? –
использовать [Template10] (https://github.com/Windows-XAML/Template10), поскольку нет смысла изобретать колесо – SWilko