XAML времени разработки требует экземпляра или избегает его?

У меня проблема: я не могу найти, как решить проблему XAML времени разработки, потому что он сообщает мне: «Ссылка на объект не устанавливает экземпляр объекта».

Визуальный захват: введите описание изображения здесь

Вот мой список из основной страницы частичного класса: введите описание изображения здесь

Однако во время компиляции он работает правильно: введите здесь описание изображения

И после выполнения все работает ....

И мое пространство имен ViewModels, где load возвращает список класса «Scenario», создание экземпляра не свидетельствует снова, а только построено выше. И я хочу создать экземпляр всего моего XAML MainPage, когда мне просто нужен статический список.

Есть ли способ решить эту проблему без создания экземпляра списка в конструкторе? Или что порекомендовать передовой опыт? Я хочу работать в Design-Time.

РЕДАКТИРОВАТЬ: Чтобы уточнить, в классе: MainPage мой элемент управления: MainWindow (запечатанный класс, захват является частичным видом моего запечатанного класса), я думаю, моя статическая переменная типа "MainPage ", а конструктор - в" this ", и это позволяет мне получать элементы.

введите описание изображения здесь

Тысяча благодарностей.


person 1antares1    schedule 02.05.2015    source источник


Ответы (1)


Имеет MainPage.Current значение? Я не думаю ... (например, Application.Current это null в Design-time)


Изменить: почему бы не использовать текст времени разработки? d: DataContext

person sac1    schedule 02.05.2015
comment
Да! Переменная типа MainPage current получает это в конструкторе, так я могу получить ваши элементы. Пример: публичный запечатанный частичный класс MainPage: Page {public static MainPage Current; общедоступная MainPage () {this.InitializeComponent (); Текущее = это; } - person 1antares1; 02.05.2015
comment
Где вы устанавливаете DataContext страницы (или любого другого анкестора ListBox) - person sac1; 02.05.2015
comment
Я создаю экземпляр DataContext в XAML ‹Page.DataContext› ‹vm: MainPageViewModel /› ‹/ Page.DataContext› Какая разница между пользователем d: DataContext? Я просто хочу сослаться на мою собственную MainPage как ViewModel. Спасибо - person 1antares1; 03.05.2015
comment
Раньше я использовал blend DataContext времени разработки только для создания своего пользовательского интерфейса. В этом случае ваш DataContext намного проще, содержит только важную информацию о дизайне ... - person sac1; 03.05.2015
comment
Это не подходило, но вы помогли мне получить правильный ответ, я бы сказал, самый подходящий метод. По-видимому, текущий экземпляр создается в режиме компиляции, поэтому создание экземпляра во время разработки не выполняется. Во всяком случае, я пробовал в отдельном классе. Спасибо. - person 1antares1; 04.05.2015