ListView

using System.Collections.ObjectModel;

XAML példa

<ListView x:Name="messageListView" CachingStrategy="RecycleElement" ItemSelected="messageListView_ItemSelected">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <StackLayout BackgroundColor="{Binding Background}">
                    <Label Text="{Binding Subject}" FontAttributes="Bold"/>
                    <Label Text="{Binding CreationDate}"/>
                </StackLayout>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>
 
ListView főbb attríbútumai
- CachingStrategy: Gyorsítótárazás - RecycleElement érték nélkül már néhány elemű lista görgetése lassú lenne!
HasUnevenRows: Engedélyezve legyen-e a változó méretű elemek.
- RowHeight: Egy elem magassága - Akkor érdemes használni, ha a HashUnevenRows nincs engedélyezve.
SeparatorVisibility: Legyen-e látható elválasztóvonal az elemek között.
- ItemSelected: Mi történjen egy elem kiválasztásakor.
 
C# kód
// Osztály létrehozása
public class MessageElement
{
    public string Subject { get; set; }
    public string Message { get; set; }
    public string CreationDate { get; set; }
    public Color Background { get; set; }
}
 
// Gyűjtemény létrehozása
ObservableCollection<MessageElement> messageCollection = new ObservableCollection<MessageElement>();
 
// Lista feltöltése
private void ShowList()
{
    // Lista forrás megadása
    messageListView.ItemsSource = messageCollection;
    
    // Értékadás változóknak
    string subject = "Tárgy";
    string message = "Üzenet";
    string creation_date = "2020-02-02";
    Color background = Color.Red;
 
    // Egy elem felvitele a gyűjteménybe
    messageCollection.Add(new MessageElement { CreationDate = creation_date, Subject = subject, Message = message, Background = background });
 
}
 
// Egy elemre történő nyomás lekezelése
private void messageListView_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
    // Kijelölés megszűntetése
    if (e.SelectedItem == null) return;
    ((ListView)sender).SelectedItem = null;
 
    // Megnyomott elem értékének lekérdezése
    MessageElement selected = e.SelectedItem as MessageElement;
 
    // Tárgy és Üzenet lekérdezése
    string subject = selected.Subject;
    string message = selected.Message;
 
    // Üzenet megjelenítése
    DisplayAlert(subject, message, "OK");
}
- Azért kell a kijelölés megszűntetése rész, mivel alapértelmezetten egy kiválasztott elemet közvetlenül utána mégegyszer nem lehetne kiválasztani - hasonló módon, mint a netes programozás esetén a SELECT-nél.

 

Mobilos kategóriák: