Регистрация слишком большого количества преобразователей значений в App.xaml.cs приводит к сбою

Я добавляю свои конвертеры значений в App.xaml.cs, но когда я добавляю еще один, это дает мне исключение при запуске приложения, которое я не знаю, как обрабатывать. Это в App.gics:

Исключение:

#if DEBUG && !DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
        UnhandledException += (sender, e) =>
        {
            if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break();
        };
#endif

Вот мои конвертеры в App.xaml.cs

<Application x:Class="cMC.App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:local="using:myApp">
  <Application.Resources>
    <ResourceDictionary>
     <ResourceDictionary.MergedDictionaries>
       <ResourceDictionary Source="/Assets/ResourceDictionaries/ResrcDict1.xaml" />
       <ResourceDictionary Source="/DataTemplates/DataTemplates.xaml" />
     </ResourceDictionary.MergedDictionaries>

        <vm:ViewModelLocator x:Key="Locator" xmlns:vm="using:myApp.ViewModel" />
        <ic:InverseBooleanConverter x:Key="InverseBoolToVisibility" xmlns:ic="using:myApp.Helpers"/>
        <mc:SegmentPartWrapper x:Key="SegmentPartWrapper" xmlns:mc="using:myApp.ViewModel"/>
        <mc:SegmentDateCNVRTR x:Key="SegmentDateCNVRTR" xmlns:mc="using:myApp.ViewModel"/>
        <mc:RailIconBooleanConverter x:Key="RailIconBooleanConverter" xmlns:mc="using:myApp.ViewModel"/>
        <mc:CarIconBooleanConverter x:Key="CarIconBooleanConverter" xmlns:mc="using:myApp.ViewModel"/>
    </ResourceDictionary>

Это вызывает проблему "CarIconBooleanConverter", но его код в ViewModel точно такой же, как "RailIconBooleanConverter"

<mc:CarIconBooleanConverter x:Key="CarIconBooleanConverter" xmlns:mc="using:myApp.ViewModel"/>

РЕДАКТИРОВАТЬ:

Я удалил один из других конвертеров из App.xaml.cs и "CarIconBooleanConverter" работает нормально. Это потому, что конвертеров слишком много?

1 ответ

Казалось бы, есть проблема с вашим классом MVVM Light, ViewModelLocator. Вы, возможно, не настроили это должным образом. Это или вы не объявили ServiceLocationProvider по умолчанию, как сказано в исключении.

    static ViewModelLocator()
    {
        ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
    }

Посмотрите, есть ли это в вашем классе ViewModelLocator.

Другие вопросы по тегам