当更改 CollectionView 中的一个对象时,多个对象会受到影响
When change an object inside a CollectionView multiple objects are affected
如果我在 CollectionView 中隐藏图像可见性,多个图像可见性会影响但图像 Tapped 事件会触发一次。
简化的 CollectionView xaml..
<CollectionView x:Name="favCollectionView"
ItemsSource="{Binding FavoriteCollection}"
RemainingItemsThresholdReachedCommand="{Binding GetNextDatas}"
RemainingItemsThreshold="1"
ItemSizingStrategy="MeasureAllItems"
ItemsLayout="VerticalList"
SelectionMode="Single">
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid VerticalOptions="FillAndExpand">
<Label Grid.Row="0" Text="{Binding TargetText}"/>
<Image Grid.Row="0" Aspect="AspectFill" Source="seeResult.png">
<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="Tapped_TranslatedResult"/>
</Image.GestureRecognizers>
</Image>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
代码隐藏..
void Tapped_TranslatedResult(System.Object sender, System.EventArgs e)
{
var img = sender as Image;
if (img != null)
{
img.Opacity = 0;
}
}
例如,如果我在 CollectionView 中有 50 行并点击一次顶部第二个图像项目,下一个第九个图像的可见性也会改变,然后再下一个第九个图像,依此类推..
可能是什么问题?
我将 Image 更改为 ImageButton,然后添加了 Command 参数。关键是杰森的评论。将模型 属性 绑定到我的 ImageButton 的 IsVisibility 属性 并且它工作正常。
如果我在 CollectionView 中隐藏图像可见性,多个图像可见性会影响但图像 Tapped 事件会触发一次。
简化的 CollectionView xaml..
<CollectionView x:Name="favCollectionView"
ItemsSource="{Binding FavoriteCollection}"
RemainingItemsThresholdReachedCommand="{Binding GetNextDatas}"
RemainingItemsThreshold="1"
ItemSizingStrategy="MeasureAllItems"
ItemsLayout="VerticalList"
SelectionMode="Single">
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid VerticalOptions="FillAndExpand">
<Label Grid.Row="0" Text="{Binding TargetText}"/>
<Image Grid.Row="0" Aspect="AspectFill" Source="seeResult.png">
<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="Tapped_TranslatedResult"/>
</Image.GestureRecognizers>
</Image>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
代码隐藏..
void Tapped_TranslatedResult(System.Object sender, System.EventArgs e)
{
var img = sender as Image;
if (img != null)
{
img.Opacity = 0;
}
}
例如,如果我在 CollectionView 中有 50 行并点击一次顶部第二个图像项目,下一个第九个图像的可见性也会改变,然后再下一个第九个图像,依此类推..
可能是什么问题?
我将 Image 更改为 ImageButton,然后添加了 Command 参数。关键是杰森的评论。将模型 属性 绑定到我的 ImageButton 的 IsVisibility 属性 并且它工作正常。