当尝试将DynamicResource用作ItemsSource用于ListView时,我的应用程序将输出以下错误:
窗口必须是树的根。无法将窗口添加为Visual的子窗口。
如果我要删除ItemsSource,而不使用代码,那么我就得不到错误,一个空的ListView就会显示出来。
位于我的ListView中的Window.XAML如下所示:
<ListView Grid.Column="1" Grid.Row="8" Grid.RowSpan="4" ItemsSource="{DynamicResource tasksResponsibilitiesCollection}">
<ListView.View>
<GridView AllowsColumnReorder="True">
<GridViewColumn DisplayMemberBinding="{Binding tasksResponsibilitiesName}" Header="Tasks/Responsibility" Width="150" />
<GridViewColumn Header="Member Responsible" Width="120" />
<GridViewColumn Header="Qualifications" Width="110" />
</GridView>
</ListView.View>
</ListView>ItemsSource是在代码隐藏中定义的ObservableCollection。我一直在使用MSDN示例(http://msdn.microsoft.com/en-us/library/ms747048.aspx)作为创建ListView的指南。
我该如何将ObservableCollection招标到ListView?我必须在某个地方定义Window.XAML中的资源吗?
如果有什么事我还没说,请告诉我。
我感谢你的帮助,
哑光
发布于 2011-02-08 13:10:31
如果将ObservableCollection定义为窗口代码背后的属性,则可以使用数据绑定来设置ItemsSource,如下所示:
<ListView Grid.Column="1" Grid.Row="8" Grid.RowSpan="4" ItemsSource="{Binding Path=tasksResponsibilitiesCollection, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}">
<ListView.View>
<GridView AllowsColumnReorder="True">
<GridViewColumn DisplayMemberBinding="{Binding tasksResponsibilitiesName}" Header="Tasks/Responsibility" Width="150" />
<GridViewColumn Header="Member Responsible" Width="120" />
<GridViewColumn Header="Qualifications" Width="110" />
</GridView>
</ListView.View>
</ListView>请注意,tasksResponsibilitiesCollection必须是您的窗口代码背后的公共属性。
https://stackoverflow.com/questions/4933180
复制相似问题