2017-04-10 3 views
0

私は画像のリストは、ユーザがジェームスmontemagnoによってxamarinのためのメディアプラグインを使用して、リストに写真を追加できるようにするボタンでリストビューに表示されている必要がありxamarin形は、プロパティは、IOSのリストビューで作業していない変更さNOTIFY

リスト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")); 

のプロパティの変更を通知するイベントを発生させ、画像とリストの更新を取ります。 IOSではイメージがイメージのリストに追加されて作成され、プロパティはイベントの発生を変更しましたが、リストビューは更新されません。ImgSourceのgetterにもヒットしません。私は景色に戻って、再びそれが動作するようにIphoneを反転する場合。

私は一時的にlistviewのアイテムソースをnullに設定してから再バインドすることで修正しましたが、なぜAndroidではなくIOSで動作するのかわかりません。

+0

代わりにObservableCollectionを使用してみましたか?アイテムが追加されると、自動的にListViewが更新されます。 – Jason

+0

@ Jasonそれはあなたがそれを投稿したい場合、私は答えとしてそれを受け入れるだろうが、私はまだプロパティが変更された理由は、アンドロイドではうまく働いたが、IOSではないことに興味があるだろう – wolfman1001

+0

確かに、各プラットフォームでのListViewの実装方法の違い。 – Jason

答えて

0

Listの代わりにObservableCollectionを使用してください。 ObservableCollectionはINotifyCollectionChangedを実装しているため、データソースからの追加または削除をListViewに自動的に通知します。

関連する問題