2016-05-30 10 views
2

Ich habe eine Grouped ListView implementiert, die zwei Gruppen enthält, die nach James Montemagnos Blogpost zum Thema funktioniert: Enhancing Xamarin.Forms ListView with Grouping Headers.Meldung anzeigen, wenn eine Gruppe keine Elemente in einer gruppierten ListView enthält

Im Gegensatz zu James 'Beispiel, muss ich alle möglichen Gruppen zeigen (was in seinem Beispiel so etwas wie alle Gruppen von A bis Z wäre). Eine dieser Gruppen ist leer und ich möchte eine Nachricht mit etwas wie "Es gibt keine Affen für diese Gruppe" zeigen.

Das ist einfach mit nicht gruppierten ListViews, aber ich habe keine Ahnung, wie dies erreicht wird, wenn Grouped Enabled ist.

Ich glaube nicht, dass das Hinzufügen meines Codes hier einen Unterschied macht, aber ... Lass es mich wissen, wenn ich falsch liege. :)

- Edit # 1: ich eine bestimmte Datatemplate für diese Liste mit (einem Rahmen mit gleichen Bezeichnungen und ein Bild), die den Benutzer nur eine Nachricht für die Ansicht nicht geeignet wäre.

+0

Möchten Sie den "no affeys" -Text in der Gruppenüberschrift oder in einem Element unter der Gruppe anzeigen? – hvaughan3

+0

@ hvaughan3 ein Element unter der Gruppe. –

+0

Ich denke, es könnte helfen, Ihren Code zu sehen, insbesondere, wie Sie die Daten sammeln, die Sie in der 'ListView' sammeln möchten, aber eine Idee, die in den Sinn kommt, wäre einfach alle Ihre Daten zu sammeln, dann fügen Sie ein einzelnes Element für jeden leer Gruppe mit dem Text, den Sie anzeigen möchten, in dem Fall wäre es "" Es gibt keine "+ groupName +" für diese Gruppe "" oder so ähnlich. Würde das für Ihre Implementierung funktionieren? Es würde erfordern, dass Sie vorher alle möglichen Gruppen kennen. – hvaughan3

Antwort

3

Während ein Codebeispiel erstellen, schaffte ich es durch Zugabe eines IsEmpty Eigenschaft auf die Gruppierung Klasse zu erledigen:

public bool IsEmpty { get { return Items.Count == 0; } } 

Die sieht wie folgt aus GroupHeaderTemplate der Listview (vereinfacht):

<ListView.GroupHeaderTemplate> 
      <DataTemplate> 
       <ViewCell> 
        <StackLayout> 
         <Label Text="{Binding Title}"/> 
         <Label IsVisible="{Binding IsEmpty}" Text="This group is empty." /> 
        </StackLayout> 
       </ViewCell> 
      </DataTemplate> 
      </ListView.GroupHeaderTemplate> 
Verwandte Themen