我有一个ListView及其ItemsSource。
ListView IList = new ListView();
IList.ItemsSource = _routine_names;
为我正在做的每个项目自定义数据模板:
IList.ItemTemplate = new DataTemplate(()=>
{
Label Routine_Name = new Label(); // should be_routine_names
return new ViewCell
{
View = new StackLayout{
Children = {Routine_Name}
}
};
});
当我运行这个时,我会显示ListView,列表项确实存在(它们有onclick处理程序可以工作)但是没有文本,应该是_routine_names中的任何内容。
我的问题如何将DataTemplate中的Label作为_routine_names中的项目?
我添加DataTemplate的原因是我可以添加滑动以删除。
答案 0 :(得分:4)
您可以使用内置的TextCell来完成您尝试的操作。它有一个可绑定的TextProperty和一个可选的DetailProperty,如果你想在主要文本下面有一个较小的文本行。
IList.ItempTemplate = new DataTemplate(()=>
{
var textCell = new TextCell();
textCell.ContextActions.Add(yourAction);
textCell.SetBinding(TextCell.TextProperty, ".");
return textCell;
}
IList.ItemsSource = _routine_names;
yourAction
的类型为MenuItem,如here
另外,请注意IList
是System.Collection命名空间中的类的名称,所以我在那里使用其他东西。