У меня есть простой класс с именем Customer
с двумя свойствами.public Name {get;set;}
public LastName {get;set}
Затем я создал класс коллекции с именем CustomerList
только с одним общедоступным свойством с именем Customers.
public class CustomerList
{
public List<Customer> Customers { get; set; }
public CustomerList()
{
Customers = new List<Customer>();
Customers.Add(new Customer() { Name = "Foo", LastName = "Bar" });
Customers.Add(new Customer() { Name = "Foo1", LastName = "Bar1" });
}
}
Теперь я хочу использовать этот класс в качестве статического ресурса в XAML.
<UserControl.Resources>
<customers:CustomerList x:Key="CustomersKey">
</UserControl.Resources>
а затем использовать его в ListBox
<ListBox x:Name="lvTemplate" ItemsSource="{Binding Source={StaticResource CustomersKey}}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBox Text="{Binding Name}"/>
<TextBox Text="{Binding LastName}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
если я устанавливаю ItemsSource в скрытом коде, после создания экземпляра класса все работает нормально. Если я попытаюсь установить его из XAML и статического ресурса, ничего не произойдет. даже если я использую {Binding Path=Customer.Name}
или {Binding Path=Name}
.
Явно что-то упускаю...