FireMonkey 的FMX.ListView.TListView组件及其相关类在西雅图进行了广泛的重构。这记录在 Embarcadero 的 DocWiki 上:
什么是新的| 重构列表视图控件
许多以前在 TCustomListView 中的成员现在在不同的类甚至不同的单元中。进入不同类的成员通过继承继续成为 TCustomListView 的一部分。
有关更改的详细列表,请参阅西雅图列表视图控件的重构。
重构页面没有特别提到TextandDetail属性。然而,DocWiki 的其他页面提供了缺失的线索:
什么是新的| 其他 FireMonkey 更改
现在您必须将TListView.Selected转换为Appearances.TListViewItem才能使用它。
FMX.ListView.TListViewBase.Selected
要将Selected用作Appearances.TListViewItem的实例,您必须将其转换为:
德尔福:
SelectedItemText := TListViewItem(TListView1.Selected).Text;
C++:
SelectedItemText = ((TListViewItem*)(TListView1->Selected))->Text;
该TListView.Selected属性仍然FMX.ListView.Types.TListItem像以前一样返回 a 。但是,TListItem不再有自己的Detail属性Text。它们已移至FMX.ListView.Appearances.TListViewItem派生自TListItem.
TListView仍然FMX.ListView.TCustomListView像以前一样派生自,但现在TCustomListView派生自 XE8 中不存在的一组新基类:
XE8:
FMX.Controls.TStyledControl
↓<br>
↓<br>
FMX.ListView.TCustomListView
FMX.ListView.TListView
西雅图:
FMX.Controls.TStyledControl
↓<br>
↓<br>
↓<br>
↓<br>
↓<br>
↓<br>
FMX.ListView.TAdapterListView
FMX.ListView.TListViewBase
FMX.ListView.TPresentedListView
FMX.ListView.TAppearanceListView
FMX.ListView.TCustomListView
FMX.ListView.TListView
因此,所有列表项对象TListView现在都是该类的实例,FMX.ListView.Appearances.TAppearanceListViewItem该类派生自TListViewItem.
因此,在访问任何从 移动TListItem到的属性时,您必须进行相应的类型转换TListViewItem,其中包括DetailandText属性等。