0

使用 Xamarin 和自定义表格单元(从 UITableViewCell 派生),这工作正常:

[Register("MyCell")]
public class MyCell: UITableViewCell
{
    private UILabel myLabel;

    public MyCell(IntPtr handle)
        : base(handle)
    {
        myLabel= new UILabel()
        {
            Font = UIFont.SystemFontOfSize(16),
            Text = "My Label",
            BackgroundColor =  UIColor.Cyan
        };

        ContentView.Add(myLabel);
    }
}

但是,如果我从中派生MvxTableViewCell(因为我最终希望我的单元格是数据绑定的)我有一个异常抛出ContentView.Add(myLabel)在线:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.

这是在尝试绑定任何数据之前。

有什么想法吗?使用 Mvx 在代码中创建自定义单元格的正确方法是什么?我已经让自定义单元格使用.xib文件与 Mvx 一起使用,但在尝试使用 PC 上的 Visual Studio 和 Mac 上的 Xamarin Studio 时,它们似乎有点笨拙。

4

1 回答 1

1

如果您的代码与上面完全相同,除了UITableViewCell替换为MvxTableViewCell并且您没有在外部进行任何绑定来更改它,那么 MvxTableViewCell 中没有任何内容会导致这种情况 - 从MvxTableViewCell.cs - 它只是顶部的一个简单层UITableViewCell

在我看来,最好的办法是收集更多的基本信息:

  • 有一个内在的例外TargetInvocationException吗?如果是这样,那个内部异常是在哪里抛出的?
  • 反射本身发生在哪里?

如果你能解决这个问题,那么你可能有更多的机会调试和解决问题

于 2013-06-21T14:21:25.007 回答