Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ListView ve GridView öğelerini artımlı olarak işlemek ve kaydırma deneyimini geliştirmek için {x:Bind} işaretleme uzantısıylax:Phase kullanın. x:Phase , liste öğelerinin işlenmesini el ile denetlemek için ContainerContentChanging olayının kullanılmasıyla aynı etkiyi elde etmek için bildirim temelli bir yol sağlar. Ayrıca bkz . ListView ve GridView öğelerini artımlı olarak güncelleştirme.
XAML öznitelik kullanımı
<object x:Phase="PhaseValue".../>
XAML değerleri
| Süre | Description |
|---|---|
| PhaseValue | Öğenin işlendiği aşamayı gösteren sayı. Varsayılan değer 0'dır. |
Açıklamalar
Bir liste dokunmayla hızlı kaydırılırsa veya fare tekerleği kullanılırsa, veri şablonunun karmaşıklık düzeyine bağlı olarak, liste öğeleri kaydırma hızına ayak uyduracak kadar hızlı işleyemeyebilir. Bu durum özellikle tablet gibi güç açısından verimli BIR CPU'ya sahip taşınabilir bir cihaz için geçerlidir.
Phasing, veri şablonunun artımlı olarak işlenmesini sağlar, böylece içerik önceliklendirilebilir ve en önemli öğeler önce işlenir. Bu, hızlı kaydırma durumunda listenin her öğe için bazı içerikler göstermesini sağlar ve zaman izin verdikçe her şablonun daha fazla öğesini işler.
Example
<DataTemplate x:Key="PhasedFileTemplate" x:DataType="model:FileItem">
<Grid Width="200" Height="80">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="75" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Image Grid.RowSpan="4" Source="{x:Bind ImageData}" MaxWidth="70" MaxHeight="70" x:Phase="3"/>
<TextBlock Text="{x:Bind DisplayName}" Grid.Column="1" FontSize="12"/>
<TextBlock Text="{x:Bind prettyDate}" Grid.Column="1" Grid.Row="1" FontSize="12" x:Phase="1"/>
<TextBlock Text="{x:Bind prettyFileSize}" Grid.Column="1" Grid.Row="2" FontSize="12" x:Phase="2"/>
<TextBlock Text="{x:Bind prettyImageSize}" Grid.Column="1" Grid.Row="3" FontSize="12" x:Phase="2"/>
</Grid>
</DataTemplate>
Veri şablonu 4 aşamayı açıklar:
- DisplayName metin bloğunu sunar. Aşama belirtilmemiş tüm denetimler örtük olarak 0. aşamanın parçası olarak kabul edilir.
- prettyDate metin bloğunu gösterir.
- prettyFileSize ve prettyImageSize metin bloklarını gösterir.
- Görüntüyü gösterir.
Phasing, ListViewBase'den türetilen denetimlerle çalışan ve veri bağlama için öğe şablonunu artımlı olarak işleyen bir {x:Bind} özelliğidir. Liste öğelerini işlerken , ListViewBase bir sonraki aşamaya geçmeden önce görünümdeki tüm öğeler için tek bir aşama işler. İşleme işi, zaman dilimleri halinde bölünmüş iş paketleri şeklinde gerçekleştirilir, böylece liste kaydırıldığında gereken iş yeniden değerlendirilir ve artık görünür olmayan öğeler için gereksiz işler yapılmaz.
x:Phase özniteliği, {x:Bind} kullanan bir veri şablonundaki herhangi bir öğede belirtilebilir. Bir öğenin 0 dışında bir aşaması olduğunda, bu aşama işlenene ve bağlamalar güncelleştirilene kadar öğe görünümden gizlenir (Görünürlük aracılığıyla değil, Opaklık yoluyla). ListViewBase türetilmiş bir denetim kaydırıldığında, yeni görünen öğeleri işlemek için artık ekranda olmayan öğelerdeki öğe şablonlarını geri dönüştürecektir. Şablondaki UI öğeleri, yeniden veriye bağlanana kadar eski değerlerini korur. Phasing bu veri bağlama adımının geciktirilmesine neden olur ve bu nedenle phasing'in eski olmaları durumunda kullanıcı arabirimi öğelerini gizlemesi gerekir.
Her ui öğesinin yalnızca bir aşaması belirtilebilir. Öyleyse, bu öğedeki tüm bağlamalar için geçerli olur. Aşama belirtilmezse, 0. aşama varsayılır.
Aşama numaralarının bitişik olması gerekmez ve ContainerContentChangingEventArgs.Phase değeriyle aynıdır. x:Phase bağlamaları işlenmeden önce her aşama için ContainerContentChanging olayı tetiklenir.
Phasing yalnızca {x:Bind} bağlamalarını etkiler, {Binding} bağlamalarını etkilemez.
Phasing yalnızca öğe şablonu, phasing'in farkında olan bir denetim kullanılarak işlendiğinde uygulanır. Windows 10 için bu, ListView ve GridView anlamına gelir. Phasing, diğer öğe denetimlerinde kullanılan veri şablonlarına veya ContentTemplate veya Hub bölümleri gibi diğer senaryolara uygulanmaz; bu gibi durumlarda tüm kullanıcı arabirimi öğeleri aynı anda veriye bağlanır.
Windows developer