Могу ли я передать свой собственный сервис через аргумент ISupviceProvider MarkupExtension.ProvideValue? - PullRequest
0 голосов
/ 06 января 2020

Возможно ли - в приложении WPF, NET Framework, внедрить мои собственные, определенные пользователем службы в аргумент IServiceProvider, полученный MarkupExtension.ProvideValue?

Обычно я делал все мои конвертеры значений происходят от расширения разметки просто для того, чтобы я мог создавать их встроенными в привязки атрибутов, если я хотел (вместо того, чтобы объявлять их как StaticResource).

Примерно так:

public class MyConverter : MarkupExtension, IValueConverter
{
    public override object ProvideValue(IServiceProvider serviceProvider) => this;

    //  (IValueConverter implementation here... blah blah blah...)

Я никогда не использовал этот аргумент IServiceProvider, но он уже доступен для меня. В документации говорится о встроенных службах, которые я могу использовать там. Но есть ли способ зарегистрировать мои собственные сервисы когда-нибудь, когда мое приложение запускается так, чтобы моё расширение разметки могло затем получить их?

(я уже понимаю, что могу использовать MultiBindings, я просто пытаюсь понять, могу ли я избежать их в некоторых случаях)

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