我遇到了一个奇怪的问题。我在另一个ListView中有一个ListView:
<ListView ItemsSource="{Binding Graph}">
<ListView.Resources>
<DataTemplate DataType="{x:Type model:Node}">
<ListView ItemsSource="{Binding Path=LSC.Elements}">
<DataTemplate DataType="{x:Type model:Entity}">
<TextBlock Text={Binding Name} />
</DataTemplate>
</ListView>
<DataTemplate>
<DataTemplate DataType="{x:Type model:Edge}">
...
</DataTemplate>
</ListView>
</ListView>
我得到的是以下例外:
Add value to collection of type 'System.Windows.Controls.ItemCollection' threw an exception
您能告诉我我的代码有什么问题吗?
答案 0 :(得分:1)
如果您要查看内部异常,它会告诉您
使用ItemsSource时,操作无效。使用ItemsControl.ItemsSource访问和修改元素。
您忘记了内部ListView.ItemTemplate
中的ListView.Resources
或ListView
(取决于您希望如何执行此操作)标记。它应该是:
<ListView ItemsSource="{Binding Path=LSC.Elements}">
<ListView.ItemTemplate>
<DataTemplate DataType="{x:Type model:Entity}">
<TextBlock Text={Binding Name} />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
没有它假设您的DataTemplate
是一个项目,因为您已指定ItemSource
绑定,您会收到此错误