MvvmCross:无法在iOS表格单元格中显示数据

时间:2014-06-06 01:11:25

标签: ios xamarin.ios mvvmcross

我正在尝试使用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;
    }

}

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这似乎是由Xamarin版本和XCode版本之间的不匹配引起的。

当我将Xamarin升级到最新版本(Xamarin.iOS 7.2)然后删除并重新创建单元格文件时,所有内容都按预期开始工作。