求你了我需要帮助。
我有一个Xamarin Form应用程序,它可以很好地将数据绑定到其名为OrderDetailViewModel的视图模型。
但今天我必须在第10行Binding OrderStatusMessage
中添加另一个DataBinding字段,该字段绑定到其Xaml.cs文件(代码隐藏),但出于好奇,此字段不起作用,我的意思是,在将标签文本绑定到位于其xaml.cs文件(代码隐藏文件)中的属性后,它不会动态更改标签文本。
在第4行中,您可以找到绑定到MVVM文件的数据,该文件名为OrderDetailViewModel,运行良好。
但问题出在第10行Binding OrderStatusMessage
,这是一个数据绑定到自己的xaml.cs文件,不会将标签文本更改为新消息。我在CollectionView.ItemTemplate标记外部测试了相同的代码Binding OrderStatusMessage
,它工作正常,因此只有当我将其放入CollectionView.ItemTemplate标记内部时,才不会提取更新的文本。
在下面的代码中,只有一个属性绑定到其xaml.cs文件(代码隐藏),该文件位于第10行{Binding OrderStatusMessage}
,未获得更新的文本,其余属性绑定到MVVM,运行良好。
PS:我想在第4行添加多重绑定到下面的代码中:
文件名:订单详细信息视图页面.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>
1条答案
按热度按时间5t7ly7z51#
您是否尝试过使用Path属性将标签绑定到CollectionView.ItemTemplate中?如下所示:
<Label Text = "{Binding Path=OrderStatusMessage, Source = {x:Reference pageName}}"/>