2017-04-10 65 views
0

我有被显示在列表视图图像列表与一个按钮,允许用户通过詹姆斯montemagno使用xamarin媒体插件添加了照片列表xamarin形式通知属性更改不与IOS的ListView工作

列表XAML

<ListView ItemsSource="{Binding Images}" 
       x:Name="lsvImages" 
       HasUnevenRows="True"> 
     <ListView.ItemTemplate> 
       <DataTemplate> 
        <ViewCell> 
         <StackLayout Orientation="Horizontal"> 
          <Image Source="{Binding ImgSource}" /> 
         </StackLayout> 
        </ViewCell> 
       </DataTemplate> 
      </ListView.ItemTemplate> 
     </ListView> 

当图像被添加它保存为一个对象的字节数组。该对象添加到列表中,它激发了图像

PropertyChanged(this, new PropertyChangedEventArgs("Images")); 

的通知属性更改事件这工作完全在android系统,拍照和列表更新预期。在IOS中,图像被创建添加到图像列表中,属性改变了事件激发,但是listview并没有更新,它甚至从来没有命中ImgSource的getter。如果我将Iphone翻转到风景并再次返回,它就可以工作。

我已经通过设置列表视图的项目源为空,然后再重新绑定它暂时固定,但我不知道为什么它的工作原理为Android而不是IOS。

+0

您是否尝试过使用ObservableCollection?这会在添加项目时自动更新ListView。 – Jason

+0

@Jason如果您想发表它,我会接受它作为一个答案,但我仍然有兴趣知道为什么物业改变了工作这么努力在Android上而不是IOS – wolfman1001

+0

不知道罚款,但它可能是由于一些潜在的ListView在每个平台上的实现方式有所不同。 – Jason

回答

0

使用ObservableCollection而不是List。 ObservableCollection实现INotifyCollectionChanged,因此它会自动通知ListView数据源中的任何添加或删除操作。