编辑
原来的问题是在获取外壳时,它抛出了一个错误,将 MtObject 转换为调试器未检测到的外壳。
将 Andy 的解决方案标记为正确,它帮助我看到问题不在 ListView 代码中,谢谢 andy
所以我一直在四处寻找,似乎无法找到正确的答案。
基本上我有一个ListView,我绑定到一个动物数组,一个动物有另一个对象外壳的属性,我试图像这样绑定外壳名称
<GridViewColumn Header="Enclosure" DisplayMemberBinding="{Binding Enclosure.Name}" />
这显然是错误的,但我认为显示了我想要实现
的目标,基本布局是 object.object。
下面的完整列表视图
<ListView Margin="20,0,20,0" Grid.Row="1" ItemsSource="{Binding}" x:Name="displayResults" SelectionChanged="displayResults_SelectionChanged_1">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Height" Value="45" />
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView x:Name="gridView">
<GridViewColumn Header="Photo" CellTemplate="{StaticResource PhotoTemplate}"/>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding GivenName}" />
<GridViewColumn DisplayMemberBinding="{Binding Path=Enclosure.Id}" Header="Enclosure"/>
<GridViewColumn Header="Species" DisplayMemberBinding="{Binding SpeciesName}" />
<GridViewColumn Header="DOB" DisplayMemberBinding="{Binding Dob}" />
<GridViewColumn Header="Average Life Span" DisplayMemberBinding="{Binding AverageLifeSpan}" />
<GridViewColumn Header="Natural Habitat" DisplayMemberBinding="{Binding NaturalHabitat}" />
</GridView>
</ListView.View>
</ListView>
外壳如何获取/设置
public Enclosure Enclosure {
get {
return ((Enclosure)(GetSuccessor(GetEnclosureRelationship(Database))));
}
set {
SetSuccessor(GetEnclosureRelationship(Database), value);
}
}