Представление не обновляется при просмотре обновлений модели - PullRequest
0 голосов
/ 23 марта 2020

Я застрял в этом некоторое время, моя модель представления не обновляет представление. Когда я отлаживаю, модель представления обновляется, но она не отображается в представлении. Что я делаю не так?

Это на мой взгляд:

    <ContentPage.BindingContext>
        <viewModels:SalaryViewModel/>
    </ContentPage.BindingContext>
                    <Label Text="{Binding sYear}" Grid.Row="2" Grid.Column="1" />
                    <Label Text="{Binding sTransportation}" Grid.Row="3" Grid.Column="0" />
                    <Label Text="{Binding sMonth}" Grid.Row="3" Grid.Column="1" />
                    <Label Text="{Binding sBasicSalary}" Grid.Row="3" Grid.Column="1" />

Когда я запускаю Debug.WriteLine, значения отображаются на панели вывода в Visual Studio. Это только представление, которое не получает обновленные значения. Ниже SalaryViewModel


 class SalaryViewModel : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
        private ApiServices _apiServices = new ApiServices();
        private string year;
        private string month;
        private string BasicSalary;
        private string Transportation;

        public string sYear
        {
            get { return year; }
            set
            {
                if (year == value)
                    return;
                year = value;
                onPropertyChanged(nameof(sYear));
            }
        }
        public string sMonth
        {
            get => month;
            set
            {
                if (month == value)
                    return;
                month = value;
                onPropertyChanged(nameof(sMonth));
            }
        }
        public string sBasicSalary
        {
            get =>BasicSalary;
            set
            {
                if (BasicSalary == value)
                    return;
                BasicSalary = value;
                onPropertyChanged(nameof(sBasicSalary));
            }
        }
        public string sTransportation
        {
            get => Transportation;
            set
            {
                if (Transportation == value)
                    return;
                Transportation = value;
                onPropertyChanged(nameof(sTransportation));
            }
        }


        public ICommand SalaryCommand
        {
            get
            {
                return new Command(async () =>
                {
                    string currentMonth = DateTime.Now.Month.ToString();
                    string currentYear = DateTime.Now.Year.ToString();
                    await _apiServices.FetchSalary(currentYear , currentMonth );
                });
            }
        }
        private void onPropertyChanged(string pName)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(pName));

        }

    }

1 Ответ

0 голосов
/ 23 марта 2020

Привет, я видел, что вы вызвали "set" метод "sBasicSalary". Как установить значение sBasicSalary после вызова «await _apiServices.FetchSalary (currentYear, currentMonth);»?

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