Как создать экземпляр класса в XAML? - PullRequest
5 голосов
/ 29 декабря 2011

Я хочу создать простой служебный класс, который не имеет визуальных элементов, и создать его в XAML, чтобы я мог определять привязки данных. Я попытался создать класс, полученный из DependencyObject, и создать его в разделе Window.Resources, но он не вызывает конструктор.

Ответы [ 3 ]

4 голосов
/ 29 декабря 2011

Вы можете создать экземпляр своего класса в app.xaml, просто добавьте к нему свое пространство имен с помощью

xmlns:yourNamespace="clr-namespace...."

Это просто помогает intellisense.

А затем в Application.Resources высоздайте свой класс

<Application.Resources>
   <yourNamespace:YourClass x:Key="yourClassInstanteName" />      
</Application.Resources>

Надеюсь, это поможет вам.

1 голос
/ 26 февраля 2012

Похоже, что экземпляры создаются, когда вы на самом деле их используете.Я нашел грязный обходной путь для этой проблемы - поместить FindResource("myClass"); в конструктор основной формы.

0 голосов
/ 17 октября 2014

Я знаю, что пишу на старый Вопрос, но я столкнулся с этим, пытаясь найти ответы самостоятельно. Код большой буквы L был действительно правильным:

xmlns:yourNamespace="clr-namespace...."

Поместите копию в Ресурсы приложения:

<Application.Resources>
   <yourNamespace:YourClass x:Key="yourClassInstanteName" />      
</Application.Resources>

Дополнительным ключом к этой информации является то, что класс должен иметь конструктор по умолчанию. Таким образом, в исходном коде класса у вас должен быть такой метод:

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