来自listview的Xamarin加载列表视图

时间:2016-08-27 12:46:12

标签: xaml listview xamarin xamarin.forms

您好我使用Visual Studio Enterprise并使用Prism.Unity.Forms和Xamarin.Forms进行开发。 在我的ViewModel中,我从webservice中检索了我的数据(参见此图) ViewModel with data

我想将这些数据检索到我的View到ListView,但我无法访问ListaEstadoCuenta,我可以显示" polizaId"和" estado" 这是" ListaEstadoCuenta"中的信息。 enter image description here

在我看来,我有ListView: enter image description here

请帮我看看如何显示数据" ListaEstadoCuenta"列表中的标签,我希望你的帮助

1 个答案:

答案 0 :(得分:1)

ListaEstadoCuenta是一个列表。这意味着您必须在标签的绑定中指定项目。例如。对于第一项:

<ViewCell>
<!-- ... -->
    <Label Text="{Binding ListaEstadoCuenta[0].Comprobante}" />
    <Label Text="{Binding ListaEstadoCuenta[0].FechaDoc}" />
<!-- ... -->
</ViewCell>

如果要在一个标签中显示列表项,则必须使用转换器来组合值:

价值转换器

public class StringConcatenationConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value is IEnumerable<EstadoCuentaDetalle>)
        {

            return string.Join(", ", ((IEnumerable<EstadoCuentaDetalle>)value).Select(x => x.Combrobante));
        }
        return value;
    }

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

您网页中的资源

您必须调整本地名称空间xmlns:local以引用您的程序集名称。

<ContentPage ...
             xmlns:local="clr-namespace:FormsTest;assembly=FormsTest">
  <ContentPage.Resources>
    <ResourceDictionary>
      <local:StringConcatenationConverter x:Key="concatConverter"></local:StringConcatenationConverter>
    </ResourceDictionary>
  </ContentPage.Resources>

<强>装订

<Label Text="{Binding ListaEstadoCuenta, Converter={x:StaticResource Key=concatConverter}}" />