ReactiveUIを使用してアプリでいくつかの作業を行ってきました。UITableViewCellsでのバインディングの処理方法
私の問題は、UITableViewsとセルの再利用です。私はReactiveTableViewSourceを使ってみましたが、それは私が望むカスタマイズレベル(カスタムヘッダーとフッタービュー)を与えてくれていないようです。
私はUITableViewSourceとUITableViewCellを使用し、IViewForを実装しました。 それから、私は個々の細胞で結合を行った。
これは問題なく動作しますが、セルが再利用されるたびに新しいViewModelに「再バインド」することが心配です。私はそれを取り組んだと信じていますが、もっと良い方法があると確信しています。私が使用している
コード(のみ関連ビット):
public partial class FlavourTableViewCell : UITableViewCell, IViewFor<MenuItemViewModel.FlavourSetItemViewModel>
{
public MenuItemViewModel.FlavourSetItemViewModel ViewModel { get; set; }
object IViewFor.ViewModel { get { return ViewModel; } set { ViewModel = (MenuItemViewModel.FlavourSetItemViewModel)value; } }
List<IDisposable> bindings = new List<IDisposable>();
// Called when new data should be shown in cell
internal void Update (MenuItemViewModel.FlavourSetItemViewModel data, MenuItemViewModel.FlavourSelectionEnum type)
{
ViewModel = data;
// Clear old bindings
if (bindings.Any()) {
bindings.ForEach (x => x.Dispose());
bindings.Clear();
}
bindings.Add (this.Bind (ViewModel, x => x.IsSelected, view => view.SelectionButton.Selected));
}
}
追加情報:
FlavourSetItemViewModel
がFlavourSetItemViewModel
のリストが含まれています。私は以下に説明しようとするでしょう:
- FlavourSetItemViewModelを -
- FlavourSetItemViewModelをセクション名を持っています -
- FlavourSetItemViewModelをアイテム名を持っています -
- FlavourSetItemViewModelをアイテム名を持っています -
- FlavourSetItemViewModelをアイテム名を持っています - 商品名を持っています
- フレーバーetItemViewModelは -
- FlavourSetItemViewModelをセクション名を持っています - あなたがやっていることは私には間違って見ていない
これは有望です。しかし、私は動的な数のセクションを持っています。それについてのヒント? – angak
私はこれを答えに加えました。 – Qonstrukt
今日私の脳細胞のすべてが明らかに働いているわけではありません。 'TableSectionInformation'の実装について詳しく教えてください。 – angak