Beispiel: Erstellen von abhängigen Kombinationsfeldern für das Dialogfeld Data Standard

Erstellen mehrerer Kombinationsfelder (auch bekannt als Auswahllisten) für Ihre Data Standard-Dialogfelder, wobei das zweite Kombinationsfeld von der Auswahl im ersten Kombinationsfeld abhängt.

Wenn im ersten Feld ein Wert ausgewählt wird, muss das nächste Feld Werte basierend auf der ersten Auswahl anzeigen. Beispiel: Bei zwei Kombinationsfeldern werden im ersten die Namen von Automobilherstellern (BMW, Mercedes, Ferrari usw.) und im zweiten die Automodellreihen für den ausgewählten Hersteller angezeigt (BMW: 1, 2, 5, X2, X5 usw., Mercedes: A, B, C, CL, CLS usw.).

Erstellen Sie ein Kombinationsfeld

Ein Kombinationsfeld wird in vier Schritten erstellt.

  1. Erster Schritt: Erstellen einer Datenquelle

    Benötigen Sie eine Quelle, aus der die Daten stammen, werden im Kombinationsfeld aus. Da WPF ein programmeigenes XML-Modul enthält, können Sie eine XML-Datei mit den Daten erstellen. Die XML-Datei weist den Inhalt der ersten Ebene für die erste Auswahl auf. Jeder Eintrag weist untergeordnete Einträge für die zweite Auswahl auf. Diese zweiten Einträge könnten sogar noch weitere untergeordnete Einträge aufweisen, falls Sie eine Auswahlliste mit drei oder noch mehr Ebenen benötigen.

    Dies sieht dann wie folgt aus:

    Erstellen Sie eine data.xml-Datei, kopieren Sie diese Inhalte in die Datei, und speichern Sie die Datei am gewünschten Speicherort. (In diesem Beispiel wird die data.xml-Datei unter C:\temp gespeichert.)

  2. Fügen Sie die Datei Data.xml als Ressource in der Data Standard-XAML-Datei. Dadurch wird ermöglicht, dass die Kombinationsfelder die Daten verwenden können.

    Fügen Sie die folgenden Zeilen im Abschnitt Resource in der XAML-Datei:

    <XmlDataProvider x:Key="comboDataSource" Source="C:\Temp\data.xml"/>

    Der gesamte Ressourcenabschnitt könnte dann wie folgt aussehen:

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

    Die neue Ressource erhält den Namen comboDataSource, und der Pfad verweist auf die Datei data.xml.

  3. Erstellen Sie nun die Kombinationsfelder, und richten Sie sie so ein, dass sie auf die Daten der ersten Ebene in der XML-Datei und auf die zugehörige zweite Ebene verweisen.

    Hier sehen Sie ein Beispiel für das erste Kombinationsfeld:

    <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"/>

    Die Source des ersten Kombinationsfelds ist auf die StaticResource-comboDataSource gesetzt, die zuvor definiert wurde.

    Das zweite Kombinationsfeld sieht wie folgt aus:

    <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"/>

    Die meisten Attribute in diesem Beispiel haben dieselbe Funktion wie im ersten Kombinationsfeld. Der einzige Unterschied liegt in ItemSource. In diesem Beispiel stammt ItemSource aus SelectedItem des ersten Kombinationsfelds ComboCarCompanies.

  4. Definieren Sie die Eigenschaftsdefinitionen CarType und Car: Fügen Sie die Eigenschaftsdefinitionen für CarType und Car abhängig vom verwendeten Tool in Inventor.cfg oder AutoCAD.cfg hinzu. Weitere Informationen zum Hinzufügen von Eigenschaftsdefinitionen in der Konfigurationsdatei finden Sie hier.

    Anmerkung: Seit VDS 2019 und höher kann dieser Schritt vermieden werden, da VDS intern eine Eigenschaftsdefinition erstellt, wenn keine vorhanden ist.
  5. Speichern Sie Ihre Änderungen, und überprüfen Sie das Dialogfeld.