1
was mache ich hier falsch? Ich versuche, eine DataTemplate
mit einer Sammlung innerhalb des DataContext
-Objekt zu erstellen, wie die folgenden:DataBinding mit DataContext
C#:
namespace StackOverflowTests
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
this.DataContext = new People();
}
}
class People
{
public List<Person> PersonList { get; set; }
public People()
{
this.PersonList = new List<Person>()
{
new Person(){FirstName = "Carlo", LastName = "Toribio" },
new Person(){FirstName = "Guy", LastName = "Incognito" }
};
}
}
class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
}
XAML:
<Window x:Class="StackOverflowTests.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" x:Name="window1" Height="300" Width="300">
<Window.Resources>
<DataTemplate x:Key="peopleTemplate">
<StackPanel>
<TextBlock Text="First Name" FontWeight="Bold" />
<TextBlock Text="{Binding PersonList.FirstName}" />
<TextBlock Text="Last Name" FontWeight="Bold" />
<TextBlock Text="{Binding PersonList.LastName}" />
</StackPanel>
</DataTemplate>
</Window.Resources>
<Grid x:Name="gridMain">
<ItemsControl ItemsSource="{Binding}" ItemTemplate="{StaticResource peopleTemplate}" />
</Grid>
</Window>
Ich habe dies viel getan einfacher mit einer Klasse, die von Collection<T>
erbt, aber aus vielen Gründen kann ich das nicht tun, um dieses Problem zu lösen. Jeder Vorschlag wird sehr geschätzt.
Danke!
Das funktionierte! Ich musste auch die PersonList aus und in der DataTemplate herausnehmen. Vielen Dank! –
Carlo
Sie müssen auch peopleTemplate ändern, um {Binding FirstName} anstelle von PersonList zu haben – Stephan
@Carlo: richtig, ich habe das verpasst. Sry –