Vytvořte několik rozevíracích seznamů (známé také jako seznamy s výběry) pro dialogy Data Standard, kde další rozevírací seznam závisí na výběru provedeném v prvním rozevíracím seznamu.
Když v prvním seznamu vyberete hodnotu, následující seznam by měl zobrazit hodnoty na základě výběru v předchozím seznamu. Například máte dva rozevírací seznamy: Jeden zobrazuje názvy automobilových společností (BMW, Mercedes, Ferrari atd.) a druhý modely automobilů vybrané značky (pro BMW: 1, 2, 5, X2, X5…; pro Mercedes: A, B, C, CL, CLS…).
Vytvoření rozevíracího seznamu se skládá ze čtyř částí.
Krok 1: Vytvoření zdroje dat
, je potřeba zdroj jejich dat k vyplnění pole se seznamem. Protože se grafický subsystém WPF dodává s nativním modulem XML, lze data vložit do souboru XML. Soubor XML bude obsahovat obsah první úrovně pro první výběr. Každá položka pak bude mít podřazené položky, které budou obsahovat data pro druhý výběr. Tyto další záznamy pak mohou mít ještě další podřazené záznamy, které umožňují přidání třetí úrovně výběru nebo dokonce ještě dalších úrovní výběru.
Takto to vypadá v praxi:

Vytvořte soubor data.xml, zkopírujte do něj tento obsah a uložte jej do požadovaného umístění. (V tomto příkladu uložíme soubor data.xml do složky C:\Temp.)
Přidat soubor data.xml jako zdroj do souboru XAML nástroje Data Standard. Díky tomu budou rozevírací seznamy moci data používat.
Přidejte následující řádky do sekce zdrojů v souboru XAML:
<XmlDataProvider x:Key="comboDataSource" Source="C:\Temp\data.xml"/>
Takto může vypadat celá sekce zdrojů:
<WPF:DSWindow.Resources xmlns:prop="clr-namespace:dataStandard.UI.View;assembly=dataStandard.UI">
...
<XmlDataProvider x:Key="comboDataSource" Source="C:\Temp\data.xml"/>
</WPF:DSWindow.Resources>
Nový zdroj má název comboDataSource a cesta odkazuje na soubor data.xml.
Nyní vytvoříte rozevírací seznamy a odkážete je na data první úrovně definovaná v souboru XML a odpovídající data druhé úrovně.
Zde je příklad prvního rozevíracího seznamu:
<ComboBox x:Name="ComboCarCompanies" Grid.Column="1" Grid.Row="6"
ItemsSource="{Binding Source={StaticResource comboDataSource}, XPath=Data/Companies/Car}" Text="{Binding Prop[CarType].Value}"
DisplayMemberPath="@Type" SelectedValue="{Binding Prop[CarType].Value}" SelectedValuePath="@Type"/>
Prvek Source prvního rozevíracího seznamu je nastaven na hodnotu StaticResource-comboDataSource, kterou jsme definovali dříve.
Druhý rozevírací seznam vypadá takto:
<ComboBox x:Name="ComboCarType" Grid.Column="1" Grid.Row="7"
ItemsSource="{Binding SelectedItem, ElementName=ComboCarCompanies}" Text="{Binding Prop[CarType].Value}"
DisplayMemberPath="@Type" SelectedValue="{Binding Prop[CarType].Value}" SelectedValuePath="@Type"/>
Většina atributů v příkladu má stejnou roli jako v případě prvního rozevíracího seznamu. Skutečný rozdíl je v prvku ItemSource. V tomto příkladu prvek ItemSource pochází z prvku SelectedItem prvního rozevíracího seznamu s názvem ComboCarCompanies.
Definujte definice vlastností CarType a Car: V souboru Inventor.cfg nebo AutoCAD.cfg (v závislosti na nástroji použitém pro tento příklad) přidejte definice vlastností CarType a Car. Zde naleznete informace o přidávání definic vlastností do souboru konfigurace.
Uložte změny a zkontrolujte obsah dialogu.