1

如何使用 MvvmCross 在 MonoTouch 中实现带有分组表的视图,所以你会得到这样的结果:

http://www.yetanotherchris.me/storage/downloads/UITableViewController.png

现在我有这段代码,但我无法将 UITableViewStyle 更改为 Grouped:

public partial class HomeView : MvxBindingTouchTableViewController<HomeViewModel>
{
    public HomeView(MvxShowViewModelRequest request)
        : base(request)
    {

    }

    public override void ViewDidLoad()
    {
        base.ViewDidLoad();

        NavigationItem.SetRightBarButtonItem(new UIBarButtonItem("History", UIBarButtonItemStyle.Bordered, (sender, e) => ViewModel.DoGoToHistory()), false);

        var source = new MvxActionBasedBindableTableViewSource(
            TableView,
            UITableViewCellStyle.Value1,
            new NSString("HomeView"),
            "{'TitleText':{'Path':'Date'},'DetailText':{'Path':'Location'},'SelectedCommand':{'Path':'ViewDetailCommand'}}",
            UITableViewCellAccessory.DisclosureIndicator);

        this.AddBindings(
            new Dictionary<object, string>()
            {
            { source, "{'ItemsSource':{'Path':'List'}}" },
            { this, "{'Title':{'Path':'TestTitle'}}"}
        });

        TableView.Source = source;
        TableView.ReloadData();
    }
}

有谁知道该怎么做?

4

2 回答 2

2

您的图片仅显示一个部分....假设您只寻找一个部分,但是这种分组样式,那么您需要做的就是以某种方式引入 UITableViewStyle.Grouped 。

我不确定当前的 MvxTableViewController 是否为您公开了这个 - 所以您可能需要编辑 Mvx 源以添加适当的构造函数:

    protected MvxTouchTableViewController(MvxShowViewModelRequest request, UITableViewStyle style = UITableViewStyle.Plain)
        : base(style)
    {
        ShowRequest = request;
    }

    protected MvxBindingTouchTableViewController(MvxShowViewModelRequest request, UITableViewStyle style = UITableViewStyle.Plain)
        : base(request, style)
    {
    }

或者,您可以使用基本视图控制器(在其中添加表作为子视图)而不是表视图派生的视图控制器。


如果你想要多个组,那么你需要做更多的工作——因为你需要弄清楚绑定的 TableViewSource 如何计算出节数和每个节中的项目数。

于 2013-01-11T12:04:49.630 回答
0
    public class UserView : MvxTableViewController<UserViewModel>
    {
        public UserView()
            :base(UITableViewStyle.Grouped)
        {
        }
    }

请记住使构造函数公开且无参数。

于 2016-12-11T02:48:15.690 回答