Мне нужно было угадать, какие у вас типы, но мне подходит следующее:
Обратите внимание, что я слегка переименовал вещи и поместил все в одно пространство имен
var comments = new Comments();
var threeComments = new List<Comment>
{
new Comment("t1", "d1", "n1", "i1"),
new Comment("t2", "d2", "n2", "i3"),
new Comment("t3", "d3", "n3", "i3")
};
comments.comments = threeComments.ToArray();
commentsLooper.ItemsSource = new CommentsDataItems(comments);
public class Comments
{
public Comment[] comments { get; set; }
}
public class CommentsDataItems : ObservableCollection<CommentDataItem>
{
public CommentsDataItems(Comments comments)
{
foreach (var com in comments.comments)
{
Add(new CommentDataItem(com.text, com.device, com.name, com.id));
}
}
}
public class CommentDataItem
{
public String text { get; set; }
public String device { get; set; }
public String name { get; set; }
public String id { get; set; }
public CommentDataItem(String text, String device, String name, String id)
{
this.text = text;
this.device = device;
this.name = name;
this.id = id;
}
}
public class Comment
{
public String text { get; set; }
public String device { get; set; }
public String name { get; set; }
public String id { get; set; }
public Comment(String text, String device, String name, String id)
{
this.text = text;
this.device = device;
this.name = name;
this.id = id;
}
}
В XAML я внес небольшие изменения. Самым большим из которых было удалить явные высоты и ширины. В частности, потому что вы установили небольшую относительную высоту на сетке, было только место, чтобы увидеть один элемент.
<Grid x:Name="commentsCotainer" VerticalAlignment="Top">
<ItemsControl x:Name="commentsLooper" Grid.Row="1">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid x:Name="comentHolder" HorizontalAlignment="Center" VerticalAlignment="Top">
<TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Top" TextWrapping="Wrap" Text="{Binding text}" Foreground="White" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>