Я новичок в WPF и MVVM. В моей ViewModel
У меня есть коллекция предметов, например:Выбор правильного управления списком позиций
class Item {
string Title {get; set;}
string Description {get; set;}
}
Я хотел бы создать представление, поэтому в начале я бы:
Title1
Title2
Title3
If пользователь нажимает на одну из заголовка она будет расширяться, чтобы показать описание, например:
Title1
Description1
Title2
Title3
Если пользователь нажимает на другое название, будет два расширенных элементов:
Title1
Description1
Title2
Description2
Title3
Это, вероятно, очень похоже на управление Expander
, и, возможно, я мог бы использовать его, но я делаю это по-другому, чтобы узнать что-то новое.
Какой контроль следует использовать для этой цели? Должно ли это быть ItemsControl
или, может быть, ListBox
?
Я предполагаю, что если я использую ItemsControl
, я должен, вероятно, расширить свой класс Item
, чтобы иметь что-то вроде bool IsExpanded
и привязать видимость элемента интерфейса к этому значению. Но, возможно, я мог бы использовать ListBox
и каким-то образом связать видимость элементов пользовательского интерфейса ... Да, на что? :)
Как я мог сделать такую простую вещь?
Не могли бы вы рассказать мне, как я могу привязать видимость содержимого к 'ToggleButton.IsPressed'? – prostynick
Это 'IsChecked', смешанный; вы можете использовать 'BooleanToVisibilityConverter' для этого. –
Вы можете просто использовать встроенный элемент управления расширителя в своем DataTemplate ... –