W przypadku wielu projektów można utworzyć wiele pól kombi (zwanych również listami wyboru), w których następne pole kombi jest zależne od wyboru dokonanego w pierwszym. Jeśli wartość zostanie wybrana w pierwszym polu, następne pole powinno zawierać wartości oparte na pierwszym wyborze. Na przykład mogą istnieć dwa pola kombi: jedno zawierające nazwy producentów samochodów (BMW, Mercedes, Ferrari .itp.), a drugie zawierające typy samochodów dla wybranej firmy (dla BMW: 1, 2, 5, x2, x5...; dla Mercedesa: A, B, C, CL, CLS...).
W celu wypełnienia pól kombi potrzebne jest źródło, z którego dane pochodzą. System WPF zawiera własny mechanizm XML, dlatego można utworzyć plik XML, który zawiera dane. Plik XML zawiera zawartość pierwszego poziomu dla pierwszego wyboru. Każdy wpis zawiera pochodne wpisy dla drugiego wyboru. Te pochodne wpisy mogą mieć więcej elementów pochodnych, w przypadku gdy konieczne jest utworzenie trzech lub więcej poziomów zagnieżdżenia listy wyboru. Działania:

Należy utworzyć plik data.xml, skopiować tę zawartość do pliku, a następnie zapisać plik w pobliżu pliku .xaml, do którego mają być dodane kaskadowe pola kombi (np. w katalogu C:\ProgramData\Autodesk\Vault <wersja>\Extensions\DataStandard\Vault\Configuration).
<XmlDataProvider x:Key="comboDataSource" Source="C:\ProgramData\Autodesk\Vault 2015\Extensions\DataStandard\Vault\Configuration\data.xml"/>
<prop:dsWindow.Resources xmlns:prop="clr-namespace:dataStandard.UI.View;assembly=dataStandard.UI"> ... ...... .... <XmlDataProvider x:Key="comboDataSource" Source="C:\ProgramData\Autodesk\Vault 2015\Extensions\DataStandard\Vault\Configuration\data.xml"/> </prop:dsWindow.Resources>
Jak można zauważyć, nowy zasób został nazwany comboDataSource i ścieżka wskazuje plik data.xml.
<ComboBox x:Name="ComboCarCompanies" Grid.Column="1" Grid.Row="5"
ItemsSource="{Binding Source={StaticResource comboDataSource}, XPath=/Data/Companies/*}"
Text="{Binding Prop[CarVendor].Value}" DisplayMemberPath="@Name"
SelectedValue="{Binding Prop[CarVendor].Value}" SelectedValuePath="@Name" />
W tym przykładzie pole kombi nosi nazwę ComboCarCompanies i znajduje się w kolumnie 1, w wierszu 5. Źródło zawartości tego pola kombi pochodzi z zasobu o nazwie comboDataSource. Wyrażenie XPath wskazuje prawidłową ścieżkę do odczytania zawartości. Wszystko znajduje się w elemencie Companies. Elementy podrzędne elementu Companies zawierają jeden składnik o nazwie Name. W związku z tym atrybuty DisplayMemberPath i SelectedValuePath wskazują na @Name. Atrybuty Text i SelectedValue wskazują na właściwość, która jest wypełniona wartościami wybranymi przez użytkownika.
Drugie pole kombi wygląda podobnie do pierwszego. Jedyną różnicą jest to, że źródło danych pochodzi z pierwszego pola kombi. Użytkownik wybiera jeden węzeł w pliku XML. Ten węzeł zostanie wczytany jako wybrany element w pierwszym polu kombi. Węzeł ten zawiera również informacje o elementach potomnych wyboru.
<ComboBox x:Name="ComboCarType" Grid.Column="1" Grid.Row="6"
ItemsSource="{Binding SelectedItem, ElementName=ComboCarCompanies}"
Text="{Binding Prop[CarType].Value}" DisplayMemberPath="@Type"
SelectedValue="{Binding Prop[CarType].Value}"
SelectedValuePath="@Type"/>
Większość atrybutów w naszym przykładzie odgrywa tę samą rolę, co w pierwszym polu kombi. Rzeczywistą różnicą jest ItemSource. W tym przykładzie pierwsze pole kombi o nazwie ComboCarCompanies wskazuje element SelectedItem.