您好我使用Visual Studio Enterprise并使用Prism.Unity.Forms和Xamarin.Forms进行开发。 在我的ViewModel中,我从webservice中检索了我的数据(参见此图)
我想将这些数据检索到我的View到ListView,但我无法访问ListaEstadoCuenta,我可以显示" polizaId"和" estado" 这是" ListaEstadoCuenta"中的信息。
请帮我看看如何显示数据" ListaEstadoCuenta"列表中的标签,我希望你的帮助
答案 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}}" />