Как я могу сохранить ярлык Xamarin на экране с данными, привязанными к элементу Carosell - PullRequest
0 голосов
/ 05 марта 2020

У меня есть

<CarouselView ItemsSource="{x:Static vm:MainPageViewModel.MyItems}">
            <CarouselView.ItemTemplate>
                <DataTemplate>
                    <StackLayout>
                        <Label Text="{Binding ID}"/>
                        <Label Text="{Binding Progress}"/>
...

Я бы хотел, чтобы <Label Text="{Binding Progress}"/> не прокручивал экран, а оставался фиксированным (вверху) и обновлялся, когда пользователь пролистывает элементы CarouselView. Если я переместу метку за пределы CarouselView, она не будет привязана к данным.

Как сохранить ярлык на экране фиксированным, но привязанным к текущему элементу CarouselView? (Нужно ли делать это с помощью кода?)

1 Ответ

1 голос
/ 05 марта 2020

Вы можете легко добиться этого, привязав свойство text Label к свойству ViewModel, что также сделает привязку к свойству CurrentItem CarouselView.

Можете ли вы попробуйте что-то вроде этого:

<Label Text="{x:Static vm:MainPageViewModel.MyCurrentItem.Progress}"/>

<CarouselView CurrentItem="{x:Static vm:MainPageViewModel.MyCurrentItem}"
              ItemsSource="{x:Static vm:MainPageViewModel.MyItems}"

              ... other code
                  >
        ... other code
</CarouselView>

и в вашем ViewModel создайте новое привязываемое свойство того же типа, что и ваши элементы списка MyItems.

Я обновил репозиторий GitHub с помощью пример такого поведения:

Вы можете найти репозиторий GitHub здесь .

и особый вид здесь .

А вот ГИФ работающей демонстрации:

enter image description here

Label выше CarouselView, а когда вы проводите и меняете выбранный элемент, значение метки меняется в соответствии с изменением CarouselView.

Надеюсь, это было полезно для вас, желая вам удачи в кодировании!

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