【发布时间】:2014-06-06 01:11:25
【问题描述】:
我正在尝试使用 Xamarin 和 MvvmCross 将对象列表绑定到 iOS 中一个非常简单的表格单元格,但我无法显示任何内容。
如果我使用 MvxStandardTableViewSource,我可以看到列表中的项目没有问题,因此问题似乎与数据无关。
我按照 N+1 6.5 中显示的说明进行操作,但我的列表中没有出现任何内容。我删除了表格单元格,再次按照说明操作,这次只在单元格中放置一个标签并使用默认单元格高度。还是什么都没有。
这是我的查看代码:
var tableView = new UITableView(new RectangleF(0, 50, 320, 500), UITableViewStyle.Plain);
Add(tableView);
var source = new MvxSimpleTableViewSource(tableView, JobListCell.Key, JobListCell.Key);
tableView.Source = source;
var set = this.CreateBindingSet<JobListView, JobListViewModel>();
set.Bind(source).To(vm => vm.Jobs);
set.Apply();
tableView.ReloadData();
这里是 JobListCell 代码:
public partial class JobListCell : MvxTableViewCell
{
public static readonly UINib Nib = UINib.FromName ("JobListCell", NSBundle.MainBundle);
public static readonly NSString Key = new NSString ("JobListCell");
public JobListCell (IntPtr handle) : base (handle)
{
this.DelayBind(() => {
var set = this.CreateBindingSet<JobListCell, JobListItem>();
set.Bind(JobDescriptionLabel).To(item => item.JobDescription);
set.Apply();
});
}
public static JobListCell Create ()
{
return (JobListCell)Nib.Instantiate (null, null) [0];
}
}
这是单元设计器代码,因此您可以看到生成的插座:
[Register ("JobListCell")]
partial class JobListCell
{
[Outlet]
MonoTouch.UIKit.UILabel JobDescriptionLabel { get; set; }
void ReleaseDesignerOutlets ()
{
if (JobDescriptionLabel != null) {
JobDescriptionLabel.Dispose ();
JobDescriptionLabel = null;
}
}
}
这是我要绑定的类:
public class JobListItem
{
public int JobId { get; set; }
public string JobDescription { get; set; }
public string JobAddress { get; set; }
public string JobPriority { get; set; }
public override string ToString()
{
return JobDescription;
}
}
有什么想法吗?
【问题讨论】:
-
我看不到与 github.com/MvvmCross/NPlus1DaysOfMvvmCross/blob/… 不同的任何东西 - 跟踪是否说明了什么?
-
跟踪中没有任何内容。我尝试使用 CollectionView 从头开始重新执行它并得到相同的结果 - 没有出现。确保字体是黑色的,因为之前被白底白字发现了!不知该如何进行。
标签: ios xamarin.ios mvvmcross