C# 在monotouch中显示基于所选分段控制的不同数据

C# 在monotouch中显示基于所选分段控制的不同数据,c#,iphone,xamarin.ios,C#,Iphone,Xamarin.ios,我有一个iPhone应用程序,我正在用MonoTouch C构建。我当前的视图有一个分段控件,有三个选项。根据选择的段,我希望显示与该段相关的数据。数据很可能需要滚动。我的问题是,我应该使用什么控制来实现这一点?我是否使用三个ScrollView控件?如果是,如何基于选定的段显示/隐藏每个控件 谢谢大家! 我遇到了这样的情况。简而言之,我用一个UITableView和UITableSource完成了这项工作。当用户选择一个数据段时,相应的数据源将替换为对应于该特定数据段的数据源,并且在大多数情况

我有一个iPhone应用程序,我正在用MonoTouch C构建。我当前的视图有一个分段控件,有三个选项。根据选择的段,我希望显示与该段相关的数据。数据很可能需要滚动。我的问题是,我应该使用什么控制来实现这一点?我是否使用三个ScrollView控件?如果是,如何基于选定的段显示/隐藏每个控件


谢谢大家!

我遇到了这样的情况。简而言之,我用一个UITableView和UITableSource完成了这项工作。当用户选择一个数据段时,相应的数据源将替换为对应于该特定数据段的数据源,并且在大多数情况下会重新加载该表tableView.ReloadData

例如,如果段a包含纯文本行,段B包含文本+图像行,则可能会有点复杂。在这种情况下,您需要在UITableSource的GetCell方法中使用更多的逻辑来确定将根据数据类型显示哪个单元格

为了最小化复杂性,我创建了一个自定义接口和继承它的泛型类:

interface ITableRow
{

    string RowTitle { get; set; }
    string RowSubTitle { get; set; }

}


class TableRow<T> : ITableRow
{

    public TableRow(string rowTitle, string rowSubtitle, T dataObject)
    {
        // fill the properties with values here
    }

    public string RowTitle { get; set; }
    public string RowSubTitle { get; set; }
    public T DataObject { get; set; }
}
这样,您可以根据每行的dataObject在每行中显示不同的数据

附言:你不喜欢iOS上的C吗

public TableRow(Func<string, T> rowTitleFunc, Func<string, T> rowSubtitleFunc, T dataObject) 
: this(rowTitleFunc(dataObject), rowSubtitleFunc(dataObject), dataObject) {}