【发布时间】:2021-07-23 08:50:26
【问题描述】:
我有一个带有名称的ConfigList 对象和一个Dictionary,我需要将ItemsControls 与不同的ItemsSource 嵌套。
我试图这样做:
<ItemsControl x:Name="TestStep" Grid.Row="0" Grid.Column="0" ItemsSource="{Binding Path=ConfigList }" HorizontalAlignment="Center" VerticalAlignment="Center">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Ictrl.Nom}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl
ItemsSource="{Binding Path=Param}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Key}" />
<TextBlock Text=" : " />
<TextBlock Text="{Binding Path=Value}" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ItemsControl>
当我启动我的应用程序时,我遇到了这个错误:
System.Windows.Markup.XamlParseException : '' 向 'System.Windows.Controls.ItemCollection' 类型的集合抛出了一个 例外。 ' 行号 '25' 和行位置 '14'。 '
内部异常 InvalidOperationException: ItemsSource 在时的无效操作 利用。使用 ItemsControl.ItemsSource 访问和编辑项目。
知道问题出在哪里吗?
【问题讨论】:
-
同时使用
ItemsSource和Items会导致异常,这是被禁止的。在 XAML 中添加嵌套 ItemsControl 的方式隐式地将其添加为其 Items 集合的元素。这是不允许的,因为您已经绑定到 ItemsSource。您可能希望将嵌套的 ItemsControl 添加到 DataTemplate。
标签: c# wpf xaml data-binding