Как отложить связывание XAML до момента загрузки - PullRequest
2 голосов
/ 28 июня 2011

Посмотрите на это:

<ItemsControl ItemsSource="{x:Static local:Cache.Colors}" />

Это связывает ItemsControl со статическим свойством с именем List.В этом случае свойство Colors является частью класса с именем Cache.

Но есть проблема.Когда вы выполняете привязку таким образом, свойство Colors вызывается во время метода Initialize до того, как в приложении установлена ​​защита.

Поскольку защита не установлена, вызов цветов приводит к исключению, так как Security isтребование для успешного вызова службы данных.

Решение перемещает это из XAML в код и обеспечивает его выполнение в событии Loaded, а не в конструкторе во время инициализации.

Реальная проблема здесь в том, что я хотел бы сделать это в XAML.Возможно ли это?

Ответы [ 2 ]

3 голосов
/ 28 июня 2011

Обычно я решил эту проблему, привязав ItemsSource к реализации интерфейса INotifyCollectionChanged .При инициализации источник элементов будет пустым, а затем во время загрузки заполняется источник элементов.Заполнение источника элементов вызывает событие изменения коллекции, в результате чего ваш элемент управления перепривязывает / добавляет новые элементы в источнике.

0 голосов
/ 07 июля 2011

Мое решение состояло в том, чтобы запустить его в App.xaml.cs прежде всего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...