EDIT : решил это с помощью IValueConverter, о существовании которого я не знал, как сказал @ tym32167 в комментариях. (Я до сих пор не понимаю, почему то, как я это сделал, не сработало.)
Я хочу иметь возможность изменить BackGroundColor на зеленый, если значение, сохраненное в моей ViewModel, <= 85, но как я это сделал, не работает. </p>
Что я делаю не так? Спасибо
Debuger
Это то, что я пробовал:
TasksGroupPage.xaml
<Span Text="{Binding TaskDBA}" BackgroundColor="{Binding ResultColor}"/>
Создал себе свойство ResultColor в моем BaseViewModel.cs
private Color resultColor;
public Color ResultColor
{
get => resultColor;
set
{
resultColor = value;
NotifyPropertyChanged();
}
}
NewTaskPageViewModel.cs, где у меня есть команда сохранения
async Task SaveNewTask()
{
IsBusy = true;
await Task.Delay(4000);
IsBusy = false;
TasksGroup tasksGroup = new TasksGroup();
Tasks tasks = new Tasks();
tasksGroup.TasksGroupDescription = TasksGroupDescription;
tasksGroup.TasksGroupDate = TasksGroupDate;
tasks.TaskDuration = TaskDuration;
tasks.TaskDBA = TaskDBA;
tasks.TaskDescription = TaskDescription;
// this is where i verify the value
if (tasks.TaskDBA <= 85)
{
ResultColor = Color.Green;
}
tasksGroup.Taches = new List<Tasks>() { tasks };
if(ValidateTasksGroup(tasksGroup) && ValidateTasks(tasks))
{
await App.Database.SaveTasksGroupAsync(tasksGroup);
await Application.Current.MainPage.DisplayAlert("Save", "La tâche a été enregistrée", "OK");
await Application.Current.MainPage.Navigation.PopAsync();
NotifyPropertyChanged();
}
}