Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Použijte x:Phase s rozšířením značek {x:Bind} k zobrazování položek ListView a GridView postupně a vylepšete zážitek z posouvání. x:Phase poskytuje deklarativní způsob dosažení stejného efektu jako použití události ContainerContentChanging k ručnímu řízení vykreslování položek seznamu. Podívejte se také na postupný vývoj položek ListView a GridView.
Použití atributu XAML
<object x:Phase="PhaseValue".../>
Hodnoty XAML
| Term | Description |
|---|---|
| PhaseValue | Číslo, které označuje fázi, ve které bude prvek zpracován. Výchozí hodnota je 0. |
Poznámky
Pokud je seznam posunutý rychlým dotykem nebo pomocí kolečka myši, pak v závislosti na složitosti šablony dat nemusí být seznam schopen vykreslit položky dostatečně rychle, aby udržel krok s rychlostí posouvání. To platí zejména pro přenosné zařízení s výkonným procesorem, jako je tablet.
Postupné vykreslování šablony dat umožňuje postupné vykreslování šablony dat, aby bylo možné určit prioritu obsahu a jako první se vykreslují nejdůležitější prvky. Díky tomu může seznam zobrazovat určitý obsah pro každou položku, pokud je posouvání rychlé, a vykreslí více prvků každé šablony podle potřeby.
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>
Šablona dat popisuje 4 fáze:
- Zobrazí blok textu DisplayName. Všechny ovládací prvky bez zadané fáze se implicitně považují za součást fáze 0.
- Zobrazuje blok textu prettyDate.
- Zobrazuje textové bloky prettyFileSize a prettyImageSize.
- Zobrazuje obrázek.
Phasing je funkce {x:Bind} , která pracuje s ovládacími prvky odvozenými z ListViewBase a která přírůstkově zpracovává šablonu položky pro datovou vazbu. Při vykreslování položek seznamu vykreslí ListViewBase jednu fázi pro všechny položky v zobrazení před přechodem na další fázi. Vykreslovací práce se provádí v dávkách s časovým řezem, aby se při posouvání seznamu bylo možné znovu posoudit požadovanou práci a neprovádí se u položek, které už nejsou viditelné.
Atribut x:Phase lze zadat u libovolného prvku v šabloně dat, která používá {x:Bind}. Pokud má prvek jinou fázi než 0, bude prvek skrytý v zobrazení (prostřednictvím neprůhlednosti, nikoli viditelnosti), dokud se tato fáze nezpracuje a vazby se aktualizují. Když se ovládací prvek odvozený z ListViewBase posune, budou šablony položek z těch, které již nejsou na obrazovce, recyklovány pro vykreslení nově viditelných položek. Prvky uživatelského rozhraní v rámci šablony si zachovají staré hodnoty, dokud se znovu nepropojí s daty. Fázování způsobí zpoždění datové vazby, a proto je nutné skrýt prvky uživatelského rozhraní, pokud jsou zastaralé.
Každý prvek uživatelského rozhraní může obsahovat pouze jednu fázi. Pokud ano, bude to platit pro všechny vazby v elementu. Pokud není zadaná fáze, předpokládá se fáze 0.
Čísla fází nemusí být souvislá a jsou stejná jako hodnota ContainerContentChangingEventArgs.Phase. Událost ContainerContentChanging bude vyvolána pro každou fázi před zpracováním vazeb x:Phase .
Phasing má vliv pouze na vazby {x:Bind} , nikoli na vazby {Binding} .
Použití fáze se uplatní pouze v případech, kdy je šablona položky vykreslena pomocí ovládacího prvku, který je obeznámen s fázováním. Pro Windows 10 to znamená ListView a GridView. Fáze se nevztahuje na šablony dat používané v jiných ovládacích prvcích položek nebo pro jiné scénáře, jako jsou oddíly ContentTemplate nebo Hub – v těchto případech budou všechny prvky uživatelského rozhraní vázané na data najednou.
Windows developer