#c# #list #uwp
#c# #Список #uwp
Вопрос:
<StackPanel Grid.Column="1">
<ListView x:Name="lstvActiveIssues" ItemClick="lstvActiveIssues_ItemClick" IsItemClickEnabled="True" Height="500">
<ListView.ItemTemplate>
<DataTemplate x:DataType="models:Issue">
<StackPanel>
<StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Title:" Width="130" FontSize="10"/>
<TextBlock Text="{x:Bind Title}" Margin="10 10 0 0" />
</StackPanel>
</StackPanel>
<StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Customer Name:" Width="130" />
<TextBlock Text="{x:Bind Customer.FirstName}" Margin="10 5 0 0" />
<TextBlock Text="{x:Bind Customer.LastName}" Margin="5 5 0 0" />
</StackPanel>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<StackPanel DataContext="{Binding SelectedItem, ElementName=lstvActiveIssues}" >
<TextBlock Text="Details of the selected Issue" />
<StackPanel Orientation="Horizontal">
<TextBlock Text="Title:" Width="130" />
<TextBlock Text="{Binding Title}" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Customer Name:" Width="130" />
<TextBlock Text="{Binding Customer.FirstName}" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Comment:" Width="130" />
<TextBlock Text="{Binding Comments}" />
</StackPanel>
</StackPanel>
</StackPanel>
Класс проблемы здесь
public class Issue
{
public Issue()
{
}
public Issue(long id, long customerId, string title, string description, string status, DateTime created)
{
Id = id;
CustomerId = customerId;
Title = title;
Description = description;
Status = status;
Created = created;
}
public long Id { get; set; }
public long CustomerId { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public string Status { get; set; }
public DateTime Created { get; set; }
public virtual Customer Customer { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
}
текстовый блок показывает только систему.Коллекция.Generic.List’1[DataAccessLibrary.Модели.Комментарий]
Как я могу показать каждый комментарий в текстовом блоке.Я хочу распаковать список комментариев (ICollection) и показать комментарии, используя привязку данных в c #. Как я могу получить доступ к каждому комментарию списка?
Комментарии:
1. вы должны перебирать
Comments
и использовать одну панель, как клиент, для каждого комментария.2. Я думаю, что вашему ListView нужен атрибут ItemsSource.
3. Я создал метод, который включает цикл foreach. цикл предоставляет каждый элемент из комментариев, но как я могу использовать метод в привязке, который я имею в виду: Text=»{Привязка комментариев? Метод}»
4. Я согласен с JH_Dev, причина вашей проблемы в том, что вы привязываете объект ICollection непосредственно к текстовому свойству текстового блока. Вы могли бы попробовать решение JH_Dev.
5. Спасибо, я должен протестировать обе альтернативы.
Ответ №1:
Я думаю, ваша проблема в том, что вы привязываете объект ICollection непосредственно к текстовому свойству вашего текстового блока.
Если вы просто хотите напрямую отображать значения в текстовом блоке, вы можете использовать конвертер значений для преобразования вашего списка комментариев в строку, которая будет отображаться в вашем текстовом блоке. Однако, исходя из вашего вопроса, я не думаю, что это ваш желаемый результат.
Мой совет — использовать другой listview для отображения комментариев, а не текстового блока. Итак, что-то вроде этого может быть тем, что вы ищете:
<ListView x:Name="issueCommentsList" ItemSource="{Binding SelectedItem.Comments, ElementName=lstvActiveIssues}" IsItemClickEnabled="True" Height="500">
<ListView.ItemTemplate>
<DataTemplate x:DataType="models:Comment">
<StackPanel>
<TextBlock Text="{Binding Text}" FontSize="10"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Как вы можете видеть, что ItemSource listview будет иметь привязку данных к комментариям выбранных элементов. Затем это позволит вам создать пользовательский интерфейс для ваших комментариев.
Я только что добавил простой текстовый блок для пользовательского интерфейса комментариев, чтобы вы могли изменить его соответствующим образом
Надеюсь, это поможет, счастливого кодирования 🙂
Комментарии:
1. Спасибо JH_Dev
2. рад помочь @HosseinHosseini может принять мой ответ