2013-04-04 64 views
1

我是Mvvmcross框架的新手,目前正在探索iOS的一部分(哦,也是iOS開發的新內容,以繪製我目前情況的美麗圖景^^)。我正在使用vNext版本。我發現了對UICollectionViewController(MvxTouchCollectionViewController和MvxBindableCollectionViewSource)實現的引用,但是這些類似乎只是未來實現(抽象類,至少缺少一種MvxSimpleBindableCollectionViewSource)的骨架。我還沒有找到使用此功能的示例。 我還發現了一個斯圖爾特的博客文章,它允許他假設他正在這部分工作(Work In Progress - MvvmCross lists sample)。MvxBindableCollectionViewSource的實現

有沒有人已經玩過這個部分,並知道一個實現或使用示例?

我看了一下Stuart在其文章中提到的xaminar的第一個10分鐘,看起來很有趣,這對我來說是一個很好的起點。

回答

1

我在幾個客戶應用程序中使用了集合視圖控制器,但不認爲我已經發布了任何使用它的開源示例。

在本質上,使用的CollectionView的非常相似,使用的tableview和細胞 - 這是詳細地示出:http://slodge.blogspot.co.uk/2013/01/uitableviewcell-using-xib-editor.html

在vNext,樣品控制器可能看起來像:

public class MyCollectionView : BaseCollectionView<MyCollectionViewModel> 
{ 
    private bool _needToCallViewDidLoadManually; 

    public HubView (MvxShowViewModelRequest request) 
     : base(request, new UICollectionViewFlowLayout(){ 
      ItemSize= new System.Drawing.SizeF (100, 100), 
      MinimumInteritemSpacing = 20.0f, 
      SectionInset = new UIEdgeInsets (10,50,20,50), 
      ScrollDirection = UICollectionViewScrollDirection.Vertical, 

     }) 
    { 
     if (_needToCallViewDidLoadManually) { 
      ViewDidLoad(); 
     } 
    } 

    public override void ViewDidLoad() 
    { 
     if (ShowRequest == null) { 
      _needToCallViewDidLoadManually = true; 
      return; 
     } 

     base.ViewDidLoad(); 

     _needToCallViewDidLoadManually = false; 

     var source = new CollectionViewSource(CollectionView); 

     this.AddBindings(
      new Dictionary<object, string>() 
      { 
      { source, "ItemsSource TheItems" } 
     }); 

     CollectionView.Source = source; 
     CollectionView.ReloadData(); 
    } 

    public class CollectionViewSource : MvxBindableCollectionViewSource 
    { 
     public CollectionViewSource (UICollectionView collectionView) 
      : base(collectionView, MyViewCell.Identifier) 
     { 
      collectionView.RegisterNibForCell(UINib.FromName(MyViewCell.Identifier, NSBundle.MainBundle), MyViewCell.Identifier); 
     } 
    } 
} 

如果您現在開始開發,那麼您也可以考慮剛剛進入Beta版的v3分支。

+0

謝謝斯圖爾特,你的解決方案非常簡單。我會看看如何自定義視圖,你的鏈接將非常有幫助! – GuillaumeG 2013-04-08 20:23:54