我有Xamarin形式的ListView,其中有一个自定义单元格。自定义单元格包含具有x:Name属性的Image控件。现在,我尝试将活动指示器IsRunning属性绑定到Image IsLoading属性,并且Xamarin表单使用x:Name找不到图像。我也尝试过从后端访问。
我在Listview中添加了其他元素,并且它们的x:Name也不可见。
注意:我可以访问x:我在ListView外部放置的控件名称,因此它看起来像是listview问题。
<StackLayout>
<ActivityIndicator x:Name="activity" Color="Purple" HeightRequest="50" WidthRequest="50" IsRunning="{Binding Source={x:Reference Offerimg},Path=IsLoading}"></ActivityIndicator>
<ListView x:Name="OfferLV" HasUnevenRows="True" x:FieldModifier="Public" SeparatorVisibility="None" BackgroundColor="White">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell >
<StackLayout Padding="0,10,0,10">
<Image x:Name="offerimg" HeightRequest="500" WidthRequest="100" Aspect="AspectFill"></Image>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
答案 0 :(得分:1)
有一个非常不错的库FFImageLoading,它将帮助您完成所需的工作,并且具有内置的2019-04-01 12:30:52.920UTC DEBUG[Analyzer-akka.actor.default-dispatcher-29] a.k.i.DefaultProducerStage DefaultProducerStage(akka://Analyzer) - Stage completed
2019-04-01 12:30:52.920UTC DEBUG[Analyzer-akka.actor.default-dispatcher-29] a.k.i.DefaultProducerStage DefaultProducerStage(akka://Analyzer) - Producer closed
2019-04-01 12:30:52.934UTC DEBUG[Analyzer-akka.actor.default-dispatcher-29] a.s.i.ActorRefSourceActor akka://Analyzer/system/StreamSupervisor-0/flow-0-2-actorRefSource - stopped
2019-04-01 12:30:53.090UTC INFO [Analyzer-akka.actor.default-dispatcher-24] a.a.RepointableActorRef akka://Analyzer/system/StreamSupervisor-0/flow-0-2-actorRefSource - Message [Evaluation] from Actor[akka://RTCPAnalyzer/system/sharding/nl.phact.rtcp.actors.AnalyzerActor/38/1683109215-939#1340984343] to Actor[akka://Analyzer/system/StreamSupervisor-0/flow-0-2-actorRefSource#-195168168] was not delivered. [3] dead letters encountered. If this is not an expected behavior, then [Actor[akka://Analyzer/system/StreamSupervisor-0/flow-0-2-actorRefSource#-195168168]] may have terminated unexpectedly, This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
属性,可以相应显示IsLoading
。您还可以处理加载错误等等...
ActivityIndicator
我为此示例创建了一个示例:https://github.com/vincentcastagna/ImageLoadingPlaceHolder
答案 1 :(得分:0)
这就是在XAML技术(包括Xamarin.Forms)中可以预期的工作方式。
不仅有一个ViewCell
,而且可能有成千上万个,并且您不能使用一个名称访问成千上万个不同的项目。
推荐的方式是使用数据绑定。通常,您还可以通过在事件中投放sender
来访问这些项目。