2つのコンボボックスを持つWPFフォームを作成しました。両方とも、このNested Hashtableからのクエリで埋められています。スイッチ内でネストされたハッシュテーブルをフィルタリングするときのトラブル
cboAgencies
は、スクリプトが実行され、フォームが読み込まれるときに塗りつぶします。 cboAgencies
で行われた選択に基づいてcboOffices
を選択し、選択した代理店に固有のオフィス所在地をリストします。
または、そうなっています。
$cboAgencies.Add_SelectionChanged({
$Script:selectedAgency = $cboAgencies.SelectedItem.ToString()
$Script:cboOffices.Items.Clear()
$Script:selectedAdmin = $null
Switch($Script:selectedAgency) {
subdivision1 {
$Script:selectedAdmin = 'division2'
$Script:arr_Offices = ($Script:hash_AgencyOffices[$Script:selectedAdmin][$Script:selectedAgency].Keys | Sort-Object)
$Script:arr_Offices | ForEach-Object {
$Script:cboOffices.Items.Add($_) | Out-Null
}
break
}
subdivision2 {
$Script:selectedAdmin = 'division2'
$Script:arr_Offices = ($Script:hash_AgencyOffices[$Script:selectedAdmin][$Script:selectedAgency].Keys | Sort-Object)
$Script:arr_Offices | ForEach-Object {
$Script:cboOffices.Items.Add($_) | Out-Null
}
break
}
division1 {
$Script:selectedAdmin = 'division1'
$Script:arr_Offices = ($Script:hash_AgencyOffices[$Script:selectedAdmin][$Script:selectedAgency].Keys | Sort-Object)
$Script:arr_Offices | ForEach-Object {
$Script:cboOffices.Items.Add($_) | Out-Null
}
break
}
}
})
注:
はここに関連するコードのコードは匿名化されています。ハッシュテーブルの実部または細分名にはスペースがありません。ちょうどそれが心配のポイントである場合。私は様々な変数を照会し、以下の変数がすべて正しくしていることがわかり. .\script.ps1
を使用してこのコードを実行する
:
$cboAgencies.SelectedItem
(および$Script:cboAgencies.SelectedItem
)$selectedAgency
(および$Script:selectedAgency
)$selectedAdmin
(および$Script:selectedAdmin
)
しかし$ arr_Offices問題は、このラインで起こっていることを意味し、空である:
$Script:arr_Offices = ($Script:hash_AgencyOffices[$Script:selectedAdmin][$Script:selectedAgency].Keys | Sort-Object)
私はSwitch
関数の外にこれを配置することによって、これをさらに確認しました:
$Script:arr_Offices = ($Script:hash_AgencyOffices['division2']['subdivision1'] | Sort-Object)
$Script:arr_Offices | ForEach-Object {
$Script:cboOffices.Items.Add($_) | Out-Null
}
と$arr_Offices
と$cboOffices
はうまくいっています。
私はここで何が間違っていますか?
[OK]を修正したと思います。私は私がそれを試してみたと思った.Keys、なぜ私は持っていない。大きいコードサンプルのキーが、明らかに私はなかった。でも、私はちょっと混乱しています。 cboAgenciesの配列は '$ hash_AgencyOffices ['division1'、 'division2']。Keys'を使って塗りつぶさなければなりません。スイッチ機能の中にキーが必要なのはなぜですか? – music2myear
Ah。それは理にかなっている。さて、.keysビットは私が必要とした解決策でした。私はそれを書き留めて、それを受け入れるつもりです。 – music2myear
クール;私はそれを答えにコピーしようとしました。 – TessellatingHeckler