在App.xaml.cs中注册太多的值转换器会导致崩溃

时间:2015-01-07 07:54:06

标签: wpf debugging exception windows-phone valueconverter

我在App.xaml.cs中添加了我的值转换器,但是当我再添加一个它时,它在应用程序启动时给出了一个我不知道如何处理的例外。它位于App.g.i.cs:

例外:

#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 个答案:

答案 0 :(得分:0)

您的MVVM Light类ViewModelLocator似乎存在问题。您可能没有正确设置它。那个或你还没有声明默认的ServiceLocationProvider,如异常所述。

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

查看它是否在ViewModelLocator类中。