Sdílet prostřednictvím


Datová vazba 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, které se vrátí klientovi. 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 prvek rozložení DataContext s názvem grid nastaven na data vrácená metodou myPanel. DataContext umožňuje prvkům dědit informace z jejich nadřazených prvků o zdroji dat používaném pro vazbu, stejně jako další charakteristiky vazby, například cestu. Řá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 XAML ListBox 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 Alb). 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 definuje mřížku se 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ří druhý 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 seznam skladeb obsažených v albu. Kromě toho je specifikován jiný název DataTemplate nazvaný TrackStyle. Rozložení šablony TrackStyle je podobné šabloně AlbumStyle, ale prvky TextBlock jsou svázány s různými vlastnostmi. Je to proto, že se tyto dvě šablony používají s různými datovými objekty.

Jak nastavit, sestavit a spustit ukázku

  1. Ujistěte se, že jste provedli instalační proceduru One-Time pro ukázky Windows Communication Foundation.

  2. Pokud chcete sestavit verzi C# nebo Visual Basic .NET řešení, postupujte podle pokynů v Sestavení ukázek Windows Communication Foundation.

  3. Pokud chcete spustit ukázku v konfiguraci pro jeden počítač nebo pro více počítačů, postupujte podle pokynů v Spuštění ukázek Windows Communication Foundation.