私はこの問題の解決策を設計しようとすることに圧倒されています。これは経験不足の副産物です。
私の目標は、XML 入力ファイルを読み取り、XML からの情報を保存し、2 つのコンボ ボックスに XML からのデータを入力することです。2 番目のコンボ ボックスの内容は、最初の選択に基づいて変化します。
この XML 構造を考えると、次のようになります。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Category xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Node>
<ID>Unique string</ID>
<Name>Unique string</Name>
<Code>Generic string<Code>
<Kind>Generic string</Kind>
<Frame>Generic string</Frame>
...
</Node>
...
</Category>
最初のコンボ ボックス: [種類] セクションで見つかった一意の値のみを含める必要があります。
2 番目のコンボ ボックス: Kind が最初のコンボ ボックスで選択された Kind と等しいすべてのノードのすべての Name エントリが含まれます。
XML ソースについて: 外部で維持および生成されます。ID セクションの値は常に一意になります。Name セクションの値は常に一意になります。スキーマは (おそらく) 変更されることはありません。今後、Kind セクションに新しい一意の値が表示される可能性があります。
私の提案する解決策: XML ソースからノードを表すクラス XMLNode を作成します。クラス XMLNode のメンバーは、各ノードのタグに対応します。すべてのノードをループし、ノードごとに XMLNode を作成します。ノードのループ中: Keys = XMLNode.ID および vals = XMLNode を使用して、ハッシュ マップに XMLNode オブジェクトを追加します。一意の種類の配列を作成します。
Kind エントリの配列からコンボ ボックス 1 を設定します。それぞれの Name データからコンボ ボックス 2 に入力します。
これは適切なアプローチですか、それともより優れた/より簡単な/よりエレガントなソリューションを見落としていますか? 私が正しい方向に進んでいる場合、提案されたソリューションに明らかな欠陥はありますか?