0

我正在尝试将 2d 对象列表链接到内容控件。我遇到了一个我不明白的例外。有人可以为我澄清一下吗?(我尝试将 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" />
4

1 回答 1

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:如何创建自定义项目控制面板?

将二维集合绑定到某个控件

于 2012-06-14T02:59:49.670 回答