Я хочу написать код, который создает меню на основе роли пользователя.
Dim User_Role As String = "Admin"
Dim Menus As New Dictionary(Of String, Object) From {
{"Admin", { {"item1", "item1_icon" }, {"item2", "item2_icon"}, {"item3", "item3_icon"} } },
{"User", { {"item1", "item1_icon" }, {"item2", "item2_icon"} } }
}
For Each menu As Object In Menus.Item(User_Role)
'Inside this loop i need to get for example "item*" and "item*_icon" each time until all items in that user role are looped through and idk how to do it
Next
Где я ошибаюсь?
Привет, @Jimi, спасибо за твой комментарий. Мне было интересно, как мне это сделать? Я новичок в VB.NET
По картинке сложно сказать, что это за управление. Например, если это PictureBox, вы должны использовать List(Of PictureBox)
. Этикетка?...тогда List(Of Label)
. Или, может быть, это пользовательский класс, поставьте имя после Of
. Если вы создаете их с помощью ключевого слова New
, это должно быть очевидно. Если вы используете какой-то метод Add
, то, вероятно, это тип возвращаемого значения этой функции.
@Idle_Mind Элементы управления — это кнопки, и мне нужно сохранить каждую кнопку (имя и значок) в виде строк в наборе данных. Вот идея: у меня есть переменная Role = "Admin", а затем, когда я перебираю меню [роль] с каждой итерацией, мне нужно получить результат массива (имя, значок), а затем я буду использовать это как button.text = array (0) и button.image = my.resources(array(1)) для создания динамического меню кнопок на основе ролей. Заранее спасибо.
Теперь я понимаю.
Используйте этот синтаксис:
Dim User_Role As String = "Admin"
Dim Menus As New Dictionary(Of String, String(,)) From {
{"Admin", {{"item1", "item1_icon"}, {"item2", "item2_icon"}, {"item3", "item3_icon"}}},
{"User", {{"item1", "item1_icon"}, {"item2", "item2_icon"}}}
}
Dim menuSystem As String(,) = Menus.Item(User_Role)
For row As Integer = 0 To menuSystem.GetUpperBound(0)
Console.WriteLine(row & ": " & menuSystem(row, 0) & ", " & menuSystem(row, 1))
Next
Выход:
0: item1, item1_icon
1: item2, item2_icon
2: item3, item3_icon4
Вместо
Object
используйтеList(Of Class)
или массив именованных кортежей ((Item As String, ItemIcon As String)()
). Или любой другой тип бетона, который подходит.