Когда задано свойство Source CollectionViewSource, если viewSource является статическим ресурсом - PullRequest
2 голосов
/ 10 июня 2011

Я получил следующее определение CollectionViewSource в XAML:

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

Я получил поле со списком, привязанное к этому CVS, и хотел бы получить доступ к представлению из кода следующим образом:

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

Однакодаже если я пытаюсь получить доступ к нему в конструкторе после InitializeComponent() или в Loaded event, обработчик View & Source по-прежнему null.

Когда приложение отображается мне в браузере, хотя привязка уже выполнена, и еслиТеперь я поставил точку останова где-нибудь, вид и источник теперь не равны нулю.

Так, когда именно установлен Источник?Где я могу получить доступ к представлению на этапе загрузки моего приложения?

Может быть, это общий вопрос о связывании, не относящийся к источнику представления, когда установлена ​​статическая привязка ресурса?

1 Ответ

1 голос
/ 11 июня 2011

Привязка устанавливается во время инициализации, так как эта строка анализируется:

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

но эта привязка указывает на любые данные, существующие в свойстве AvailablePersons в то время . Он останется пустым до завершения любой связанной асинхронной загрузки.

С Silverlight вы, как правило, интересуетесь событиями, загружаемыми данными, а не когда на экран выводится визуальное дерево.

Не могли бы вы рассказать нам больше о том, как вы выбираете данные для AvailablePersons?

...