Sdílet prostřednictvím


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 TextBlockvedle 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 TextBlocks 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

  1. Ujistěte se, že jste pro ukázky windows Communication Foundation provedli jednorázovou instalační proceduru.

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

  3. 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.