0

我使用 syncfusion listview 在 xamarin 表单上创建 listview

我想在列表视图中使用 ItemAppearing 选项

我在网站上使用了这个示例:https ://help.syncfusion.com/cr/cref_files/xamarin/Syncfusion.SfListView.XForms~Syncfusion.ListView.XForms.SfListView.html

这个示例:https ://help.syncfusion.com/cr/cref_files/xamarin/Syncfusion.SfListView.XForms~Syncfusion.ListView.XForms.SfListView~ItemAppearing_EV.html#ExampleBookmark

我用这个例子发现了这个问题

ListView.ItemAppearing +=listView_ItemAppearing;

public void listView_ItemAppearing(object sender, Syncfusion.ListView.XForms.ItemAppearingEventArgs e)
        {
           var temp= e.ItemData as IEnumerable<ListViewCall>;
            //temp.ToList();
        }

我投到e.ItemDataList<ListViewCall> 得到null

e.ItemData有数据但是var tempnull

为什么会这样?

4

2 回答 2

0

ItemData:从绑定的数据源中获取item出现时ListViewItem的底层数据对象。

所以e.ItemData会返回你的绑定对象。像上面的例子一样,它会返回对象BookInfo

public void listView_ItemAppearing(object sender, Syncfusion.ListView.XForms.ItemAppearingEventArgs e)
    {
       var temp= e.ItemData as BookInfo;           
    }
于 2019-11-01T02:04:13.470 回答
0
           public void listView_ItemAppearing(object sender, Syncfusion.ListView.XForms.ItemAppearingEventArgs e)
    {
        if (e.ItemData is GroupResult)
        {
            var listViewCalls = (e.ItemData as GroupResult).Items as EnumerableQuery<ListViewCall>;
            foreach (var listViewCall in listViewCalls)
            {

            }
        }
        else if (e.ItemData is ListViewCall)
        {
            var listViewCall = e.ItemData as ListViewCall;


        }


        // foreach (Object obj in e.ItemData.GetType().GetProperties(System.Reflection.BindingFlags.Public | BindingFlags.Instance))
        // {
        //    string s = (obj as Call).Title;
        //}


    }
于 2019-11-03T15:16:35.547 回答