【问题标题】:MvvmCross: cannot display data in iOS table cellMvvmCross:无法在 iOS 表格单元格中显示数据
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多