TableView 是一个带滚动条的数据列表而且行的样式可以不同。不像ListView,TableView没有概念化的ItemSource,所以items必须作为子项手动的添加。
如下为TableView在ios 、android、wp中的呈现样式:
什么情况下使用TableView:
1、呈现一个设置列表。
2、一个表单里的数据集合
3、显示数据,要求行的样式不同。
TableView的结构:
TableRoot是TableView的一个根节点Root,而一个根节点包含一个或多个TableSection,TableSection包括多显示元素。关系如下:
Content = new TableView {
Root = new TableRoot {
new TableSection...
},
Intent = TableIntent.Settings
};
每个TableSection由一个头标题和一个或多个ViewCells组成,如下:
var section = new TableSection ("Ring") { //TableSection constructor takes title as an optional parameter
new SwitchCell {Text = "New Voice Mail"},
new SwitchCell {Text = "New Mail", On = true}
};
在XAML中的写法如下:
<TableView Intent="Settings">
<TableRoot>
<TableSection Title="Ring">
<SwitchCell Text="New Voice Mail" />
<SwitchCell Text="New Mail" On="true" />
</TableSection>
</TableRoot>
</TableView>
TableView的显示
TableView有一个Intent属性,对应的值如下:
1、Data - 用于显示数据输入,注意ListView可能更加适合做滚动数据列表的显示
2、Form - 用作Tableview的操作是一个Form的时候
3、Menu - 用作显示一个菜单选项的时候
4、Settings - 用作显示一个配置设置列表的时候。
创建TableView的Cell
TableView和ListView可以使用相同的Cells,但是在TableView中更多使用SwitchCell和EntryCell,而在ListView中更多使用TextCell和ImageCell。
SwitchCell是一个呈现状态的控件,如on/off true/false。包括一个显示文本和一个开关。如下图:
EntryCell 是一个普通的文本编辑cell。
自定义的cell
除了Xamarin.Forms自带的几种Cell以外,也可以自定义Cell,得到想要的效果,自定义Cell,需要继承ViewCell。