ListBox内にItemsControlを配置しようとしていますが、内部ItemsControlのデータバインディングに問題があります。WPF EFデータバインディング:ListBox内のItemsControl(マスター詳細)
EFモデル:
EmployeeViewModel:
パブリッククラスEmployeeViewModel { 公衆たListCollectionView従業員{取得します。セット; }
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);
}
}
}
ビュー:
<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>
リストボックスは完全に結合するが、内部のItemsControlません。
何が問題なのですか? 助けていただければ幸いです。
出力: System.Windows.Dataエラー:17: ''(タイプ 'Employees_463D630561C8612AEA43DCC3EC6E2ACDC644CFB28D50978184F80EEEE86D779E')から(タイプ 'ICollection`1') 'スキル' の値を取得できません。 BindingExpression:Path =スキル; DataItem = 'Employees_463D630561C8612AEA43DCC3EC6E2ACDC644CFB28D50978184F80EEEE86D779E'(HashCode = 29719745);ターゲット要素は 'ItemsControl'(Name = '')です。ターゲットプロパティが 'のItemsSource'(タイプ 'IEnumerableを')に、TargetInvocationExceptionです:「System.Reflection.TargetInvocationException:デアEigenschaftenaccessorスキルエリーゼDAS System.Data.Entity.DynamicProxies.Employees_463D630561C8612AEA43DCC3EC6E2ACDC644CFB28D50978184F80EEEE86D779E-Objektハットfolgende Ausnahmeのverursacht:ダイのObjectContext-Instanz wurde verworfenウントカンあなたのために、あなたのために、あなたのために、あなたのために祈りなさい。 ---> System.ObjectDisposedException:ObjectContext-Instanzは、エラーが発生した場合は、エラーが発生した場合に表示されます。
はのは、あなたの出力ウィンドウからの情報を見てみましょう。綴り間違いがあると、それは悲鳴を上げるはずです。あなたの質問を[編集]してください。 –