如果viewSource是静态资源,则何时设置CollectionViewSource Source属性

时间:2011-06-10 14:16:35

标签: silverlight silverlight-4.0 binding collectionviewsource

我在XAML中获得了以下CollectionViewSource定义:

 <UserControl.Resources>
        <CollectionViewSource x:Key="PersonsViewSource" Source="{Binding AvailablePersons}">
            <CollectionViewSource.SortDescriptions>
                <scm:SortDescription PropertyName="Surname" Direction="Ascending" />
            </CollectionViewSource.SortDescriptions>
        </CollectionViewSource>
    </UserControl.Resources>

我有一个绑定到这个CVS的组合框,并希望从这样的代码访问View:

(Resources["PersonsViewSource"] as CollectionViewSource).View

但是,即使我尝试在InitializeComponent()之后或Loaded event处理程序中查看&amp;来源仍为null

当应用程序在浏览器中显示给我时,虽然绑定已经发生,如果我现在在一个地方放置一个断点视图&amp; source现在不为null。

那么究竟什么时候设置源?我在哪里可以访问加载我的应用程序的阶段的视图?

也许这是一个关于viewsource的一般性绑定问题,什么时候是静态资源绑定集?

1 个答案:

答案 0 :(得分:1)

在初始化期间设置绑定,因为此行被解析:

<CollectionViewSource x:Key="PersonsViewSource" Source="{Binding AvailablePersons}">

但该绑定指向当时AvailablePersons属性中存在的任何数据。在任何相关的异步加载完成之前,它将保持为空。

使用Silverlight,您通常对数据加载事件感兴趣,而不是在显示可视树时。

您能告诉我们有关如何获取AvailablePersons数据的更多信息吗?