我正在尝试将2d对象列表链接到contentcontrol。我得到一个我不明白的例外。有人可以为我澄清一下吗? (我尝试将C#中的first.ItemsSource属性设置为我在代码中声明的NationMetrics对象 - 它给了我相同的异常)
外部例外:
为'System.Windows.Controls.ItemCollection'类型的集合添加值引发异常。
内部例外:
使用ItemsSource时,操作无效。使用ItemsControl.ItemsSource访问和修改元素。
NationMetrics课程:
public class NationMetrics
{
List<List<Field>> _Nations = new List<List<Field>>();
public List<List<Field>> Nations { get { return _Nations; } set { _Nations = value; } }
}
以下是我的MainWindow.xaml中触发异常的片段
<Grid>
<ItemsControl x:Name="first" ItemTemplate="{DynamicResource DataTemplate_Level1}" ItemsSource="{Binding Path=Nations, Source={StaticResource nationMetric}}" />
</Grid>
这是我的Window.Resources的片段,它定义了nationMetric
<local:NationMetrics x:Name="nm" x:Key="nationMetric" />
答案 0 :(得分:1)
你可以试试这样的东西:
<Window.Resources>
<DataTemplate x:Key="inner">
<TextBlock Content="{Binding}"/>
</DataTemplate>
<DataTemplate x:Key="outer">
<ItemsControl ItemsSource="{Binding}" ItemTemplate="{DynamicResource inner}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</DataTemplate>
</Window.Resources>
<ItemsControl x:Name="itemControl" ItemsSource="{Binding Path=Nations, Source={StaticResource nationMetric}}" ItemTemplate="{DynamicResource outer}">
这基本上表明列表中有一个列表并适当地进行绑定。我没试过,但我认为这是方法!
其他资源: