VB.Net список StackPanel с WPF xaml

Я создал приложение, в котором перечислены разные профили, а затем показаны разные параметры в зависимости от того, какой профиль выбран. Некоторые из опций показаны в нескольких профилях. Я использую WPF xaml для создания панелей стека с именами, а затем устанавливаю видимость в зависимости от того, какой профиль выбран, как в следующем примере, который работает (реальное приложение использует несколько операторов elseif вместо одного оператора if):

Private Sub ProfileComboBox_SelectionChangeCommitted(sender As Object, e As EventArgs) Handles ProfileComboBox.SelectionChanged
Dim selectedItem = ProfileComboBox.SelectedItem

If (selectedItem = "Workforce") Then
Label1.Visibility = Visibility.Visible
ComputerName.Visibility = Visibility.Collapsed
Country.Visibility = Visibility.Visible
endif

То, что я хотел бы сделать, это изменить его на цикл for, чтобы у меня было меньше мест, которые я должен изменить, если я добавлю или уберу опции. Например, я попробовал приведенный ниже код, который не работает. Я получаю ошибку "Переменная объекта или переменная блока не установлена"

Public PropertiesList() = {Application, Label1, Department, Country, Account, FirstName, LastName, AssetTag, Region, SubmitButton}
Public DefaultList() = {Application}
Public WorkForceList() = {Department, Country, Account, FirstName, LastName, AssetTag, Region, SubmitButton}

For i As Integer = 0 To PropertiesList.Count - 1
If DefaultList.Contains(PropertiesList(i)) Then

PropertiesList(i).Visibility = Visibility.Visible
Else
PropertiesList(i).Visibility = Visibility.Collapsed
End If
Next

Любая помощь приветствуется.

0 ответов

Другие вопросы по тегам