Почему моя привязка не работает для моей собственности? - PullRequest
0 голосов
/ 14 июля 2020

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();
            }


        }

1 Ответ

0 голосов
/ 16 июля 2020

Попробуйте это, чтобы создать себе свойство ResultColor в моем BaseViewModel.cs

public Color resultColor;
public Color ResultColor
{
    get
    {
        return resultColor;
    }

    set
    {
        SetProperty(ref resultColor, value);
    }

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...