Я не знаю, что я делаю здесь не так.У меня есть ListBox
, чьи DataContext
и ItemsSource
установлены, но в ListBox
ничего нет, когда я запускаю свое приложение.При отладке первая строка моего метода получения предметов для ListBox
никогда не попадает под удар.Вот что у меня есть:
// Constructor in UserControl
public TemplateList()
{
_templates = new Templates();
InitializeComponent();
DataContext = this;
}
// ItemsSource of ListBox
public List<Template> GetTemplates()
{
if (!tryReadTemplatesIfNecessary(ref _templates))
{
return new List<Template>
{
// Template with Name property set:
new Template("No saved templates", null)
};
}
return _templates.ToList();
}
Вот мой XAML:
<ListBox ItemsSource="{Binding Path=GetTemplates}" Grid.Row="1" Grid.Column="1"
Width="400" Height="300" DisplayMemberPath="Name"
SelectedValuePath="Name"/>
В экземпляре класса Template
есть свойство Name
, которое является просто string
,Все, что я хочу, это отобразить список имен шаблонов.Пользователь не будет изменять никакие данные в Template
, ListBox
просто должен быть доступен только для чтения.
Шаблон также имеет свойство Data
, которое я позже покажу в этом ListBox
, поэтому я не хочу, чтобы GetTemplates
возвращал просто список строк - он должен возвращать некоторую коллекцию Template
объектов.