MVVMCrosscore绑定问题tableview,集合

时间:2013-11-05 13:51:17

标签: mvvmcross

以下是可在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部分: 现在我有了UIScrollView,其中每个Scrollbar项都是一个按钮项,其中包含title作为CategoryName。 我想将可观察集合中的CategoryName绑定到每个滚动条按钮标题 每当集合更改时,UISCrollView标题中的按钮必须反映更改。 在这种情况下,给定上述类结构的绑定表达式是什么。找出绑定语法很有挑战性。

第2部分: 我有一个UITableView,它包含一个产品标题,产品图片和产品成本的单元格,这意味着我有列表 我想将此UITableView绑定到此列表,该列表是Observable Collection-&gt; CategoryName-&gt; ProductData列表的一部分 在这种情况下绑定表达式是什么。我希望我们必须在这里进行自定义绑定。?

是的,正如你所说的MvxTableViewCell等可用。

关于自定义绑定,我应该在minisetup中进行吗?

1 个答案:

答案 0 :(得分: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派生视图,并且在其中进行一些绑定

我不知道这意味着什么 - 请尝试在您的问题中加入一个有效的代码示例。