Как динамически изменить стиль кнопки на Мауи?C#

Место общения программистов C#
Anonymous
Как динамически изменить стиль кнопки на Мауи?

Сообщение Anonymous »

Мне интересно, как динамически изменить стиль кнопки.
Я ожидаю, что когда я нажимаю первую кнопку, стиль должен измениться на «ClickedButton», но для второй должен быть «DefaultButton», соответственно, когда вторая кнопка нажимается. Эти стили определены в файле Styles.xaml.
Я пытаюсь сделать что-то вроде этого:
Просмотр: Конвертер:

Код: Выделить всё

 public class StyleConverter : IValueConverter
{
public Style? DefaultStyle { get; set; }

public Style? ClickedStyle { get; set; }
public object? Convert(object? value, Type? targetType, object? parameter, CultureInfo? culture)
{
return (bool)value! ? ClickedStyle : DefaultStyle;
}

public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}

ViewModel:

Код: Выделить всё

 [ObservableProperty]
private bool isButtonWarnClicked = false;

[ObservableProperty]
private bool isButtonAllClicked = true;

[RelayCommand]
private void ButtonAllClicked()
{
ResetButtons();
IsButtonAllClicked = true;
}

[RelayCommand]
private void ButtonWarnClicked()
{
ResetButtons();
IsButtonWarnClicked = true;
}

private void ResetButtons()
{
IsButtonAllClicked = false;
IsButtonWarnClicked = false;
}
Задан только стиль для первой кнопки (IsButtonAllClicked = true), когда я нажимаю кнопку предупреждения, срабатывает команда реле, но стиль не меняется. Как динамически изменить стиль с помощью шаблона MVVM?

Подробнее здесь: https://stackoverflow.com/questions/785 ... on-in-maui

Вернуться в «C#»