Xamarin表单ListView ItemsSource问题

时间:2017-08-30 23:09:05

标签: c# listview xamarin xamarin.forms datatemplate

我有一个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的原因是我可以添加滑动以删除。

1 个答案:

答案 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命名空间中的类的名称,所以我在那里使用其他东西。