2013-07-19 35 views
1

我试图从MvxBindableTableViewCell继承以重新定义我自己的单元格(具有更多文本字段和图像)。 当从MyCustomSource.GetOrCreateCell创建新实例时,使用的ctor始终为MyCustomCell(IntPtr句柄)。在这种情况下,使用的单元格样式是Default,但我想使用Value1样式(重新使用右对齐的蓝色文本)。如何覆盖继承自MvxBindableTableViewCell的xib-less单元格的单元格样式

在传统的iOS应用程序中,解决方案是从我的ctor使用“initWithStyle:reuseIdentifier:”base ctor。 对于MonoTouch/MvvmCross项目,正确的解决方案可能会在XCode设计器中完成。但我正在从VS工作(不能在XS上使用我的解决方案),我只想使用无xib UI来跟踪我的源代码管理中的更改。

关于如何实现我的目标的任何想法?

Guillaume。

回答

0

就个人而言,我并不倾向于非常使用标准的细胞类型。相反,我倾向于使用XIB或基于手动代码的布局构建自己的自定义单元格。

但是,如果您想在Mvx中使用标准单元格类型,则可以轻松使用标准单元格类型。

在v3中,您可以选择使用MvxStandardTableViewCell构造函数,该函数以UITableViewCellStyle作为参数 - 例如,看到https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding.Touch/Views/MvxStandardTableViewCell.cs#L40

这也暴露了该构造的MvxStandardTableViewSourcehttps://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding.Touch/Views/MvxStandardTableViewSource.cs#L60


在vNext去年,我认为相同的功能是通过旧MvxSimpleBindableTableViewSource暴露 - 见https://github.com/slodge/MvvmCross/blob/vnext/Cirrious/Cirrious.MvvmCross.Binding.Touch/Views/MvxSimpleBindableTableViewSource.cs#L62

+0

谢谢您回答斯图尔特。我将使用我自己的细胞类型,而不依赖于任何细胞类型的考虑,事实上似乎是一个更好的主意。 但是我面临着一个新的麻烦:当试图将我的UI元素添加到ctor的ContentView中时(正如Xam在他们的教程中所解释的那样),这个似乎还没有初始化(这并不是这样使用UICollectionViewCell)。这就是为什么你在自定义单元上使用第三种方法“初始化”的原因吗?或者这是我身边的一个小故障? – GuillaumeG

相关问题