以下是可在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中进行吗?
答案 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
应该在MvvmCross.Binding.Touch.dll
MvxCollectionViewController
不可用 - 这是一个MvvmCross视图
这显示在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 - 因为您选择来构建自己的框架 - 所以确保完成设置是您自己的工作。
我不知道这意味着什么 - 请尝试在您的问题中加入一个有效的代码示例。