#c# #wpf #xaml #binding
#c# #wpf #xaml #привязка
Вопрос:
Это мой класс:
public class Person
{
public string Name { get; set; }
public string Age { get; set; }
public List<Sweet> sweetList { get; set; }
public Person()
{
sweetList = new List<Sweet>();
}
}
public class Sweet
{
public string Id{ get; set; }
}
В MainPage.xaml я установил
DataContext = personList;
в XAML
<phone:LongListSelector ItemsSource="{Binding personList}" >
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
<TextBlock Text="{Binding sweetList.Id}" />
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
Как я могу привязать этот класс к XAML?
в результате я вижу только Name, но TextBlock с sweetList.Идентификатор пуст
Пожалуйста, помогите
Комментарии:
1.
sweetList
имеет типList<Sweet>
иList<T>
не имеет свойства, вызываемогоId
. Вы, вероятно, ищете что-то вродеsweetList[0].Id
, хотя это не идеально, поскольку нет гарантии, чтоsweetList
содержит хотя бы 1 элемент, и вы можете захотеть увидеть больше, чем просто первый элемент в списке. Что вы пытаетесь здесь сделать? Вероятно, есть лучшие способы достижения в нем XAML
Ответ №1:
Чтобы отобразить коллекцию в WPF, вам нужно использовать элемент управления контейнером, такой как ListBox
:
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Name}" />
<ListBox ItemsSource="{Binding sweetList}">
<ListBox.ItemTemplate>
<TextBlock Text="{Binding Id}" />
</ListBox.ItemTemplate>
</StackPanel>
</DataTemplate>
Затем вам также нужно сообщить фреймворку, как отображать ваш Sweet
класс, что и делает внутренний ListBox.ItemTemplate
.
Ответ №2:
Вы устанавливаете шаблон элемента для каждого элемента в ‘PersonList’, но вы не делаете то же самое для ‘sweetList’.
Поскольку sweetList — это список, а не просто один Sweet, вам либо нужно получить доступ к первому в списке, выполнив что-то вроде sweetList[0].Идентификатор, или, возможно, вы хотите отобразить каждый из списка на экране, и в этом случае вам нужно сделать что-то похожее на то, что вы делаете с PersonList.
Комментарии:
1. Нужен список в виде: ссылка конечно, классный класс только с одним свойством — это только пример. У всех пользователей есть список с конфетами. Я должен показать всех людей и все плюсы, которые у них есть.