【发布时间】:2013-11-25 18:09:11
【问题描述】:
有 2 个班级。一个是包含第二类列表作为属性的父级。 第二类也有一个列表。
问题是应用程序没有将列表绑定到第二个类中。
应用程序将显示从第二个类列表(在父类中)绑定的网格列表,每个网格将显示第二个类中列表中的信息。
现在每个网格都没有绑定值
Class Parent{
public List<NestedClass> Child { get; set; }
.
.
.
}
Class NestedClass{
public ObservableCollection<SomeParameter> Params{ get; set; }
public string Name
{
get
{
return "Hello world";
}
}
.
.
.
}
xaml 如下。
<ItemsControl HorizontalContentAlignment="Stretch" ItemsSource ="{Binding Child}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding Child.Params}" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="80"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<TextBlock Text="{Binding Count}" />
</Grid>
<Grid Grid.Column="1"></Grid>
<Grid Grid.Column="2"></Grid>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
输出窗口如下所示
System.Windows.Data 错误:40:BindingExpression 路径错误:在“对象”“NestedClass”(HashCode=16626097)上找不到“参数”属性。绑定表达式:路径=参数; DataItem='NestedClass' (HashCode=16626097);目标元素是'ItemsControl'(名称='');目标属性是“ItemsSource”(类型“IEnumerable”)
已编辑#1添加了 xaml
Edited#2添加了输出消息
Edited#3在 NestedClass 中添加了 name 属性
【问题讨论】:
-
您是否尝试将内部ItemsControl的ItemsSource设置为Params?
-
@Sascha 你的意思是
<ItemsControl ItemsSource="{Binding Params}" >对吗?如果是对的,我已经试过了。它不起作用。 -
@groupgrip,你试过
吗? -
@VasiliRuzov 是的,我已经尝试过了。作为我提出问题的示例代码。它不起作用。
-
那些内心的
Grids 太可怕了。为什么需要它们?