首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >List<Object>中嵌套对象的ListView绑定属性

List<Object>中嵌套对象的ListView绑定属性
EN

Stack Overflow用户
提问于 2017-10-05 18:53:15
回答 1查看 517关注 0票数 0

我正在尝试绑定一个名为"Name“的字符串属性,该属性来自一个列表,该列表由我在listView中绑定到的对象持有。

代码语言:javascript
复制
public class MyObject 
{
    public List<Object> Objects{ get; set; }
    public string Description {get; set; }
    public string StartDate {get; set; }
    public string EndDate {get ;set; }
    public string Type {get; set; }

    public MyObject()
    {
        Objects = new List<Object>();
    }
}

public class Object
{
    public string Name { get; set; }
    public int? Id { get; set; }
    public int? Order { get; set; }
}

在我的页面中,我从call async中设置了ListView.ItemSource,这是一个List<MyObject>

代码语言:javascript
复制
 var itemSource = listOfMyObject;

我有一台DataTemplate

代码语言:javascript
复制
public class Cell : ViewCell     
{
    private void SetBindings()
    {
        _objectLabel.SetBinding(Label.TextProperty, "Object.Name");
        _descriptionLabel.SetBinding(Label.TextProperty, "Description");
        _dateStartLabel.SetBinding(Label.TextProperty, "StartDate");
        _dateEndLabel.SetBinding(Label.TextProperty, "EndDate");
        _typeOfRequest.SetBinding(Label.TextProperty, "Type");
    }
}

所以所有的东西都被正确绑定了,除了在我的ListView中没有显示的Object.Name

我知道它不能工作,因为我的对象是一个List< T>,并且没有Name属性。好吧,但是我怎么才能实现我想要的呢?而且我不想只对一个标签使用嵌套的listView。

我已经看到,我可以使用以下内容获得数据的扁平列表:listOfMyObject.SelectMany(obj => obj.Objects)

但不知道该怎么做。那么如何绑定MyObject列表中对象的属性呢?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-05 20:25:18

代码语言:javascript
复制
public class ListToStringConverter : IValueConverter
{

    #region IValueConverter implementation

    public object Convert (object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value!= null)  {
           List<Object> temp = (List<Object>)value;
           if(temp.Count == 0 )
                return "";

           string myString = "";
           foreach(Object obj in temp){
               myString += obj.Name + ",";
          }

          return myString;
        }
        return "";
    }

    public object ConvertBack (object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException ();
    }

    #endregion
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46583924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档