Частичное обновление текста метки в XamarinForms - PullRequest
0 голосов
/ 27 марта 2020

У меня есть ротатор с ярлыком на каждом слайде, указывающим счет, который будет отображаться там. Я ограничил это свойство, которое выполняет операцию API для получения количества. Я получаю полученное значение, но проблема в том, что при отображении на ярлыке оно видно только частично. Я знаком с правилами обновления элементов пользовательского интерфейса в потоке пользовательского интерфейса с помощью Device.BeginInvokeOnMainThread. Я позвонил с Device.BeginInvokeOnMainThread. Например, если количество равно 25. Но метка показывает только 5. Но когда страница обновляется, выполняется та же команда и отображается правильное значение. Я следовал подходу viewmodel, т.е. у меня есть команда для получения количества. Я вызвал эту команду на странице о появлении события также, чтобы обновить sh счетчик, когда я возвращаюсь на домашнюю страницу даже после начальной загрузки.

Xaml

<Label FontFamily="{StaticResource Montserrat-Regular}"
       HorizontalOptions="StartAndExpand"
       Text="{Binding Count}"
       FontSize="60"
       Style="{StaticResource RotorLabelStyle}" />

viewmodel

await Task.Run(async () =>
                        {
                            var result = await _matchingTrialsService.GetMatchingTrialsCount();

                            Device.BeginInvokeOnMainThread(() =>
                            {
                                item.Count = $"{result:0}";
                            });
                        });

xaml.cs

protected override void OnAppearing()
        {
            base.OnAppearing();

            Device.BeginInvokeOnMainThread(() => {
                ((PatientHomeViewModel)this.BindingContext).CountDetilsCommand.Execute(null);
            });
        }

Есть ли у кого-нибудь решение этой проблемы enter image description here

слева - это усеченный результат

справа - правильный результат

...