Ich versuche, ein ItemsControl innerhalb einer ListBox zu platzieren, aber ich habe Probleme mit der Datenbindung für die innere ItemsControl.WPF EF Datenbindung: ItemsControl in ListBox (Hauptdetail)
EF Modell:
EmployeeViewModel:
public class EmployeeViewModel { public Listcollectionview Mitarbeiter {get; einstellen; }
public EmployeeViewModel()
{
LoadData();
}
private void LoadData()
{
using (testdbEntities context = new testdbEntities())
{
IEnumerable<Employees> query = (from e in context.Employees
orderby e.Lastname
select e);
ObservableCollection<Employees> emp = new ObservableCollection<Employees>(query);
Employees = new ListCollectionView(emp);
}
}
}
Ausblick:
<Window x:Class="Employee.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Employee"
xmlns:viewModel="clr-namespace:Employee.ViewModel"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Window.DataContext>
<viewModel:EmployeeViewModel/>
</Window.DataContext>
<Grid>
<ListBox x:Name="listEmployees"
ItemsSource="{Binding Employees}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock>
<Run Text="{Binding Lastname}"/>,
<Run Text="{Binding Firstname}"/>
</TextBlock>
<ItemsControl Name="empSkills" ItemsSource="{Binding Skills}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Skill}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</Window>
Die List-Box bindet perfekt, aber die innere Items nicht.
Was könnte das Problem sein? Jede Hilfe wird geschätzt.
Ausgang: System.Windows.Data Fehler: 17: Kann nicht bekommen 'Skills' Wert (Typ 'ICollection`1') von '' (Typ 'Employees_463D630561C8612AEA43DCC3EC6E2ACDC644CFB28D50978184F80EEEE86D779E'). BindingExpression: Pfad = Skills; DataItem = 'Employees_463D630561C8612AEA43DCC3EC6E2ACDC644CFB28D50978184F80EEEE86D779E' (HashCode = 29719745); Zielelement ist 'ItemsControl' (Name = ''); Zieleigenschaft ist 'ItemsSource' (Typ 'IEnumerable') TargetInvocationException: 'System.Reflection.TargetInvocationException: Der Eigenschaftenaccessor Skills für das System.Data.Entity.DynamicProxies.Employees_463D630561C8612AEA43DCC3EC6E2ACDC644CFB28D50978184F80EEEE86D779E-Objekt hat folgende Ausnahme: Die ObjectContext-Instanz wurde verarbeitet und kann nicht mehr für den Fall, dass eine Verbindung notwendig ist. ---> System.ObjectDisposedException: Die ObjectContext-Instanz wurde ausgeführt und kann nicht mehr für einen bestimmten Zweck konfiguriert werden.
die Informationen von Ihrem Ausgabefenster sehen lassen. Das sollte schreien, wenn es verbindliche Fehler gibt. Bitte [Bearbeiten] Sie Ihre Frage und fügen Sie das ein. –