【问题标题】:Xamarin Forms Grouping List View Not Displaying Iterating RowXamarin 表单分组列表视图不显示迭代行
【发布时间】:2020-07-04 15:46:44
【问题描述】:

我有一个 ListView,其中有一个需要显示的“子”列表。

XAML:

  <ListView Grid.Row="3" ItemsSource="{Binding ServiceDatesFinalCollectionOutput}" IsGroupingEnabled="True" GroupDisplayBinding="{Binding ServicesHeader.ServiceType}">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <TextCell TextColor="Black" Text="{Binding ServicesHeader.ServiceType}" />
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>

类:

private ObservableCollection<ServiceDatesModel.ServiceDatesCombined> _ServiceDatesFinalCollection;
        public ObservableCollection<ServiceDatesModel.ServiceDatesCombined> ServiceDatesFinalCollectionOutput
        {
            get { return _ServiceDatesFinalCollection; }

        }


    public class ServiceDatesCombined
        {
            public Service ServicesHeader { get; set; }

            public List<Servicedate> ServicesDetails { get; set; }

        }


  public class Servicedate
        {
            public string desc { get; set; }
            public object endDate { get; set; }
            public string startDate { get; set; }
            public DateTime startDateNonString { get; set; }
            public string descDetail { get; set; }
        }

每当我尝试查看时 - 我只看到第一个 ServicesHeader.ServiceType 显示,但没有看到剩余的。最重要的是,我没有看到 TextCell 内容。

任何指针表示赞赏!

谢谢

【问题讨论】:

标签: c# xaml xamarin xamarin.forms


【解决方案1】:

您必须修复模型和视图。组模型类应为IEnumerableListView.ItemTemplate 绑定上下文将是 Servicedate 类(我猜是细节类)。

然后为了让它工作,ServiceDatesCombined 类应该是IEnumeable

...
public class ServiceDatesCombined : IEnumerable
{
    public Service ServicesHeader { get; set; }

    public List<Servicedate> ServicesDetails { get; set; }

    public IEnumerator GetEnumerator()
    {
        return ServicesDetails?.GetEnumerator();
    }
}
...

XAML 代码有一些调整。

...
    <ListView ItemsSource="{Binding ServiceDatesFinalCollectionOutput}"
              IsGroupingEnabled="True" 
              GroupDisplayBinding="{Binding ServicesHeader.ServiceType}">
        <ListView.ItemTemplate>
            <DataTemplate>
                <TextCell TextColor="Black" Text="{Binding desc}" />
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
...

我建议你阅读ListView Appearance documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多