包含外键项的列表视图

问题描述

我正在使用Firebase和Xamarin.Forms构建应用程序,我有一个Listview显示请求。问题是Request类的一个字段包含第二个类的对象的Id

要做的是使用Id类中的Requests字段从第二个类中获取该项目的名称。我可以使用数据绑定吗?如果我遵循正常流程,它将显示Id

解决方法

如果您的模型具有这样的FK属性

public int FK { get; set; }

并且FK指向Widget中的List<Widget>对象,您可以像这样向模型添加只读属性

public string WidgetName 
{
    get {
      return Widgets.FirstOrDefault(w => w.ID == FK).Name;
    }
}

然后,您只需在绑定中使用WidgetName

如果您不想修改模型,则可以在ValueConverter中使用将FK转换为Name的相同方法,并在绑定中使用转换器