Hozzon létre többszintű kombinált listát (vagy más néven kiválasztási listát) a Data Standard párbeszédpanelhez, ahol az első listában megadott választól függően jelenik meg a következő lista.
Amikor kiválaszt egy értéket az első mezőben, a következő mezőnek az előzőben kiválasztottra alapuló értékeket kell megjelenítenie. Például két beviteli mezőből az első autógyártók nevét (BMW, Mercedes, Ferrari stb.) jeleníti meg, a második pedig autótípusokat jelenít meg a kiválasztott vállalathoz (BMW: 1, 2, 5, X2, X5...; Mercedes: A, B, C, CL, CLS...).
Négy részből áll a kombinált lista létrehozása.
1. lépés: Hozzon létre egy adatforrást
Szükség van egy forrásra, ahonnan az adatok származnak a beviteli mezőben. Mivel a WPF-hez tartozik egy saját XML motor, létrehozhat egy XML fájlt, amely tartalmazza az adatokat. Az XML fájlban az első szint tartalma az első kiválasztásra vonatkozik. Minden bejegyzés gyermekbejegyzésekkel rendelkezik a második kiválasztás számára. Ezek a második szintű bejegyzések több gyermekkel is rendelkezhetnek, ha három vagy több beágyazott kiválasztási listára van szüksége.
Ez így néz ki:
Hozzon létre egy data.xml fájlt, másolja be ezt a tartalmat a fájlba, majd mentse a fájlt a kívánt helyre. (Ebben a példában mentse a Data.xml fájlt a C:\Temp mappába).
Adja hozzá a data.xml, a Data Standard .xaml fájlt. Ez lehetővé teszi a kombinált listák számára az adatok használatát.
Adja hozzá a következő sorokat az Erőforrás szakaszban az .xaml fájlhoz:
<XmlDataProvider x:Key="comboDataSource" Source="C:\Temp\data.xml"/>
Így néz ki a teljes Erőforrás szakasz:
<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>
Az új erőforrás neve comboDataSource
, és az útvonal a data.xml fájlra mutat.
Most hozza létre a beviteli mezőket és állítsa be azokat úgy, hogy az első szintű adatokra mutassanak az XML-ben, illetve a megfelelő második szintre.
A következő példa az első legördülő listát mutatja:
<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"/>
Az első kombinált lista Source
eleme a korábban definiált StaticResource-comboDataSource
.
A második kombinált lista a következőképpen néz ki:
<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"/>
A legtöbb attribútum a példánkban ugyanolyan szerepet játszik, mint az első beviteli mezőben. A valós különbség az ItemSource
. Ebben a példában az ItemSource
az első, ComboCarCompanies
nevű listában meghatározott SelectedItem
értékből származik.
Határozza meg a CarType
és a Car
tulajdonságdefiníciókat: attól függően, hogy ehhez a példához melyik eszközt használja, az Inventor.cfg vagy az AutoCAD.cfg fájlban adja hozzá a CarType
és a Car
mezők tulajdonságdefinícióit. Lásd a tulajdonságdefiníciók hozzáadását a konfigurációs fájlban.
Mentse a módosításokat, és tekintse át a párbeszédpanelt.