0

以下は、viewmodel で使用できる Observable コレクションです。

ObservableCollection<Category> productcat;

Category クラスのさらなる分割は次のとおりです。

public class Category
{
    public string CategoryName { get; set;}
    public List<ProductData> Products
        {
            get;
            set;
        }
}

ProductData クラスは次のとおりです。

public class ProductData
{
     public string ProductImageUri { get; set;}
     public string ProductTitle { get; set;}
     public float productcost { get; set;}
}

パート 1: 各 Scrollbar 項目がボタン項目であり、タイトルが CategoryName として含まれる UIScrollView があります。監視可能なコレクションから各スクロールバー ボタンのタイトルに CategoryName をバインドしたい コレクションが変更されるたびに、UISCrollView タイトルのボタンは変更を反映する必要があります。上記のクラス構造が与えられた場合、この場合のバインディング式は何でしょうか。バインディング構文を理解するのは難しいです。

パート 2: 製品タイトル、製品画像、製品コストを含むセルを含む UITableView があります。つまり、この UITableView を Observable Collection->CategoryName->ProductData リストの一部であるこのリストにバインドしたいリストがあります 。この場合、バインディング式になります。ここでカスタムバインディングを行う必要があることを願っています.?

はい、あなたが言ったように、MvxTableViewCellなどが利用可能です。

カスタムバインディングに関しては、ミニセットアップで行う必要がありますか?

4

1 に答える 1

0

モデル/データ構造の表示

データ構造では、パブリック プロパティではなくパブリック フィールドをバインドしているようです。

これらはすぐには機能しません - プロパティを使用する必要があります

そう:

 public string CategoryName;


 public class ProductData
 {
  public string ProductImageUri;
  public string ProductTitle;
  public float productcost;
 }

なる必要があります:

 public string CategoryName {get;set;}


 public class ProductData
 {
  public string ProductImageUri {get;set;}
  public string ProductTitle {get;set;}
  public float productcost {get;set;}
 }

次のクラスが見つかりません: MvxCollectionViewSource、MvxTableViewCell、MvxCollectionViewController など

MvxCollectionViewSourceMvxTableViewCell利用可能である必要がありますMvvmCross.Binding.Touch.dll

MvxCollectionViewControllerは利用できません - MvvmCross ビューです

この場合、CrossCore 環境でバインディングを実現するにはどうすればよいですか?

これは、N+1 N=39 チュートリアルに示されています - http://slodge.blogspot.com.au/2013/09/n39-crosslight-on-xamariniosmonotouch.html - ソースはhttps://github.com/にありますslodge/NPlus1DaysOfMvvmCross/tree/master/N-39-CrossLight-Touch

また、カスタムバインディングを行うことができるはずですか?

はい

しかし、私はセットアップクラスを持っていません..私の場合。この場合、どうすればカスタム バインディングを実現できますか?

N+1 N=39 チュートリアルに示されているように、まだセットアップ クラスがあるので、そこに初期化コードを入れることができます。IMvxTargetBindingFactoryRegistryバインディング ビルダーが初期化された後、次を使用してアクセスできます。Mvx.Resolve<IMvxTargetBindingFactoryRegistry>()

MvvmCross を使用していないため (独自のフレームワークを構築することを選択しているため)、セットアップが完了していることを確認するのは自分の仕事です。

私が現在行っているのは、ビュー クラスを持ち、IMvxBindable からビューを派生させ、その中で何らかのバインディングを行うことです。

これが何を意味するのかわかりません。質問に実際のコード サンプルを含めてみてください。

于 2013-11-05T14:55:48.127 に答える