Kolumne: Silverlight Expertise

ListBox Paging Mauszeiger anpassen Capability Detection Tool für Windows Phone
Kommentare

Heute stehen folgende Themen auf der Menükarte: ListBox Paging, Mauszeiger anpassen und Capability Detection Tool für Windows Phone. Viel Spaß dabei!

Menü 1 für Einsteiger: ListBox Paging

Man weiß es ja eigentlich: das Anzeigen von unüberschaubar vielen Datensätzen sollte vermieden werden. Aber was, wenn es aus bestimmten Gründen unvermeidbar ist? Dann kann man sich mit dem DataPager-Steuerelement behelfen, mit dem die Inhalte von Inhaltssteuerelementen begrenzt auf eine beliebige Anzahl dargestellt werden. Die weiteren Datensätze erhält man dann erst durch weiteres Navigieren beim DataPager selbst.

Damit die Datensätze auch vom DataPager verarbeitet werden können, muss man die Daten mit einer PagedCollectionView-Instanz binden. Listing 1 zeigt eine ViewModel-Klasse, die Ihre Daten bisher über eine ObservableCollection (Names) zur Verfügung stellte. Beim Konstruktor wird zusätzlich ein PagedCollectionView-Property (NamesForPaged) mit den Daten der ObservableCollection instanziiert.

Doch bevor die PagedCollectionView-Klasse verwendet werden kann, muss man die System.Windows.Data.dll zu dem Projektverweis hinzufügen. Wenn allerdings vorher im Visual Studio 2010 Designer das DataPager-Steuerelement auf die Oberfläche platziert wurde, fügt Visual Studio diese Referenzen automatisch hinzu. Listing 2 zeigt die Oberfläche (XAML) mit einer ListBox und einem DataPager (Abb. 1). Die Daten erhalten die beiden von der NamesForPaged-Property, die vom ViewModel bereitgestellt wird.

Listing 1: ViewModel mit PagedCollectionView-Property für das DataPager-Steuerelement

using System.Collections.ObjectModel;
using System.Windows.Data;

namespace SilverlightListBoxPagingExample.ViewModel
{
    public class ExampleViewModel
    {
        public ObservableCollection Names { get; set; }
        public PagedCollectionView NamesForPaged { get; set; }

        public ExampleViewModel()
        {
            Names = new ObservableCollection();
            Names.Add("Gregor Biswanger");
            Names.Add("Sebastian Geertsen");
            Names.Add("Robert Walter");

            NamesForPaged = new PagedCollectionView(Names);
        }
    }
}  

Listing 2: ListBox mit DataPager


    
        
    

        
        
            
            
        
    
  
Abb.1: ListBox mit DataPager
Abb.1: ListBox mit DataPager
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -