当ItemsSource正在使用异常时,操作无效 - 我做错了什么?

时间:2012-06-13 21:24:18

标签: c# wpf xaml

我正在尝试将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" />

1 个答案:

答案 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}">

这基本上表明列表中有一个列表并适当地进行绑定。我没试过,但我认为这是方法!

其他资源:

WPF: How to create a custom items control panel?

Binding 2 dimensional Collection to some control