Datové vazby v klientovi Windows Presentation Foundation
Ukázka WPFDataBinding ukazuje použití datové vazby v klientovi WPF (Windows Presentation Foundation). Ukázka používá službu Wcf (Windows Communication Foundation), která náhodně generuje pole alb pro návrat do klienta. Každé album má název, cenu a seznam skladeb alba. Skladby alba mají název a dobu trvání. Informace vrácené službou jsou automaticky vázány na uživatelské rozhraní (UI) poskytované klientem Windows Presentation Foundation (WPF).
Poznámka:
Postup nastavení a pokyny k sestavení pro tuto ukázku najdete na konci tohoto tématu.
Datová vazba umožňuje, aby byl zdroj dat automaticky svázán s uživatelským rozhraním. To zjednodušuje programovací model, protože nevyžaduje, abyste každý prvek uživatelského rozhraní programově aktualizovali daty z datového objektu nebo pole datových objektů. Objekt můžete svázat s jedním prvkem uživatelského rozhraní nebo polem s ovládacím prvkem, který přebírá více vstupů, například ListBox
. Následující kód ukazuje, jak svázat data s DataContext
prvkem uživatelského rozhraní.
// Event handler executed when call is complete
void client_GetAlbumListCompleted(object sender, GetAlbumListCompletedEventArgs e)
{
// This is on the UI thread, myPanel can be accessed directly
myPanel.DataContext = e.Result;
}
V předchozí ukázce je DataContext
element grid
rozložení s názvem myPanel
nastaven na data vrácená metodou GetAlbumList
. Umožňuje DataContext
elementům dědit informace z nadřazených prvků o zdroji dat, který se používá pro vazbu, a také další vlastnosti vazby, jako je cesta. Řádek kódu se musí spustit při každé aktualizaci dat na serveru. Spustí se například při inicializaci okna a při přidání nového alba.
V následujícím ukázkovém kódu ListBox
XAML určuje ItemsSource="{Binding }"
.
<ListBox
ItemTemplate="{StaticResource AlbumStyle}"
ItemsSource="{Binding }"
IsSynchronizedWithCurrentItem="true" />
Určuje, že data vázaná na prvek uživatelského rozhraní nejvyšší úrovně jsou také vázána na tento ovládací prvek (to znamená pole Alba). Kromě toho určuje šablonu dat, ItemTemplate="{StaticResource AlbumStyle}"
která se má použít pro každou položku v objektu ListBox
. Můžete také definovat šablony dat a určit způsob formátování dat. Tyto šablony dat je možné opakovaně použít pro jiné prvky uživatelského rozhraní v aplikaci. Výhodou je, že je šablona dat definovaná a udržována na jednom místě.
Šablona AlbumStyle
dat obsahuje mřížku se dvěma dvěma TextBlock
vedle sebe. Jedna určuje název alba a druhý počet stop v albu.
<DataTemplate x:Key="AlbumStyle">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="260" />
<ColumnDefinition Width="60" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" TextContent="{Binding Path=Title}" />
<TextBlock Grid.Column="1" TextContent="{Binding Path=Tracks#.Count}" HorizontalAlignment="Right" />
</Grid>
</DataTemplate>
Následující kód XAML vytvoří sekundu ListBox
.
<ListBox Grid.Row="2"
Grid.ColumnSpan="2"
ItemTemplate="{StaticResource TrackStyle}"
ItemsSource="{Binding Path=Tracks}" />
Kód určuje cestu pro ItemsSource
. To znamená, že data svázaná s tímto ovládacím prvku nejsou daty nejvyšší úrovně, ale vlastností dat nejvyšší úrovně pojmenovaných Tracks
. Tato vlastnost představuje pole stop obsažených v albu. Kromě toho je zadán jiný DataTemplate
název TrackStyle
. Rozložení TrackStyle
šablony je podobné AlbumStyle
rozložení šablony, ale TextBlock
s jsou svázané s různými vlastnostmi. Je to proto, že se tyto dvě šablony používají s různými datovými objekty.
Nastavení, sestavení a spuštění ukázky
Ujistěte se, že jste pro ukázky windows Communication Foundation provedli jednorázovou instalační proceduru.
Pokud chcete sestavit edici C# nebo Visual Basic .NET řešení, postupujte podle pokynů v části Sestavení ukázek windows Communication Foundation.
Pokud chcete spustit ukázku v konfiguraci s jedním nebo více počítači, postupujte podle pokynů v části Spuštění ukázek windows Communication Foundation.