2016-07-05 13 views
0

私はUITableViewにカスタムセルを持っています。セルのためのコード:Xamarin.iOS UITableViewがReloadData()によって更新されない

public partial class SaleTableViewCell : MvxTableViewCell 
    { 
     public static readonly NSString Key = new NSString("SaleTableViewCell"); 
     public static readonly UINib Nib = UINib.FromName("SaleTableViewCell", NSBundle.MainBundle); 

     public SaleTableViewCell(IntPtr handle) 
      : base(handle) 
     { 
      this.DelayBind(() => 
      { 
       var set = this.CreateBindingSet<SaleTableViewCell, SaleItem>(); 
       set.Bind(IdLabel).To(vm => vm.ProductKey); 
       set.Bind(NameLabel).To(vm => vm.Description); 
       set.Bind(QuantityLabel).To(vm => vm.Quantity); 
       set.Bind(PriceLabel).To(vm => vm.Price); 
       set.Bind(DiscountLabel).To(vm => vm.DiscountAmount); 
       set.Bind(TotalLabel).To(vm => vm.Total); 
       set.Apply(); 
      }); 
     } 


     public static SaleTableViewCell Create() 
     { 
      return (SaleTableViewCell)Nib.Instantiate(null, null)[0]; 
     } 
    } 

私はMvxSimpleTableViewSourceを使用しています:

var source = new MvxSimpleTableViewSource(TableView, SaleTableViewCell.Key, SaleTableViewCell.Key); 
TableView.Source = source; 

しかし、私はSaleItem(例えば数量)私のtableView ISNのいずれかのプロパティを変更しようとしています直接電話しても更新されませんTableView.ReloadData();

私は間違っていますか?

+0

あなたのSaleItemクラスのコードと、あなたのTableViewに関連付けられているViewModelを投稿してください。一般に、セルのプロパティを更新すると、ListView to ReloadDataにバインドされているObservableCollectionでRaisePropertyChangedを呼び出す必要があります。 – pnavk

答えて

0

SaleItemは、INotifyPropertyChangedを実装する必要があります。 次に、プロパティを変更して、結果を表のセルに表示します。

これを行う最も簡単な方法は、このナゲットを使用することです:https://github.com/Fody/PropertyChangedしかし、自分でも実装を書くことができます。

関連する問題