Форма Xamarin Добавить множественную привязку

Пожалуйста, мне нужна помощь.

У меня есть приложение Xamarin Form, которое очень хорошо работает с привязкой данных к своей модели представления с именем OrderDetailViewModel.

Но сегодня я должен добавить еще одно поле DataBinding в строку 10 Binding OrderStatusMessage, которое связано с его файлом Xaml.cs (код позади), но из любопытства это поле не работает, я имею в виду, что оно не меняет текст метки динамически после привязки метки text в свойство, расположенное в его файле xaml.cs (код позади файла).

В строке 4 вы можете найти привязку данных к файлу MVVM с именем OrderDetailViewModel, который работает хорошо.

Но проблема в строке 10 Binding OrderStatusMessage, которая представляет собой привязку данных к собственному файлу xaml.cs, не изменяет текст метки на новое сообщение. Я протестировал тот же код Binding OrderStatusMessage вне тега CollectionView.ItemTemplate, и он работает правильно, поэтому только когда я помещаю внутри тег CollectionView.ItemTemplate, он не извлекает обновленный текст.

В приведенном ниже коде есть только одно свойство, которое привязано к его файлу xaml.cs (код позади), который находится в строке 10 {Binding OrderStatusMessage}, который не получает обновленный текст, остальные привязаны к MVVM, который работает хорошо.

PS: я хотел бы добавить множественную привязку к приведенному ниже коду в строке 4:

имя файла: OrderDetailViewPage.xaml

<CollectionView.ItemTemplate >
    <DataTemplate >
        <StackLayout
            xct:TouchEffect.LongPressCommand = "{Binding LongPressCommand, Source = {RelativeSource AncestorType = {x:Type local:OrderDetailViewModel}}}"
            xct:TouchEffect.LongPressCommandParameter = "{Binding .}"
            xct:TouchEffect.PressedScale = "1.2"
            xct:TouchEffect.NativeAnimation = "True">

            <StackLayout>
                <Label Text = "{Binding OrderStatusMessage}" HorizontalOptions = "CenterAndExpand" FontFamily = "fasolid" FontSize = "18" FontAttributes = "Bold" TextColor = "Black"/>
            </StackLayout>

            <Label Text = "{Binding Id}"
                FontSize = "Medium"/>
            <Label Text = "Order number" HorizontalOptions = "CenterAndExpand"/>
            <Label Text = "{Binding OrderId}"
                TextColor = "Purple" FontAttributes = "Bold"
                FontSize = "Large" HorizontalOptions = "CenterAndExpand"/>
            <Label Text = "{Binding OrderDetail}"
                TextColor = "Purple"
                FontSize = "Small" />
            <Label Text = "{Binding OrderDate}"
                TextColor = "Purple"
                FontSize = "Small" />
            <Label Text = "{Binding IsOrderComplete}"
                TextColor = "Purple"
                FontSize = "Small" />
        </StackLayout>
    </DataTemplate>
</CollectionView.ItemTemplate>

🤔 А знаете ли вы, что...
С C# можно разрабатывать мобильные приложения для платформы Android с использованием Xamarin.


61
1

Ответ:

Решено

Вы пытались связать свою метку внутри CollectionView.ItemTemplate, используя свойство Path? Вот так: <Label Text = "{Binding Path=OrderStatusMessage, Source = {x:Reference pageName}}"/>