0

以下是视图模型中可用的 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 项都是一个按钮项,包含作为 CategoryName 的标题。我想将可观察集合中的 CategoryName 绑定到每个滚动条按钮标题每当集合更改 UISCrollView 标题中的按钮时,都必须反映更改。鉴于上述类结构,在这种情况下绑定表达式是什么。找出绑定语法具有挑战性。

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

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

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

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 等

MvxCollectionViewSource并且MvxTableViewCell应该在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 教程中所示,您仍然有一个设置类 - 因此您可以将初始化代码放在那里。初始化绑定构建器后,您可以访问IMvxTargetBindingFactoryRegistryusingMvx.Resolve<IMvxTargetBindingFactoryRegistry>()

因为您没有使用 MvvmCross - 因为您选择构建自己的框架 - 那么确保完成设置是您自己的工作。

我目前正在做的是有一个视图类并从 IMvxBindable 派生视图,这就是全部并在其中进行一些绑定

我不知道这意味着什么 - 请尝试在您的问题中包含一个工作代码示例。

于 2013-11-05T14:55:48.127 回答