2017-04-10 60 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數據源中的任何添加或刪除操作。