2013-05-13 7 views
6

NuGet経由でMVVM Lightパッケージを追加すると、インストール中に追加されたApp.xamlファイルの行を参照するエラーが発生します。これらのエラーは、Windows Phone 8プロジェクトにのみ表示されます。 Windows Phone 7プロジェクトの同じ行はエラーを発生させません。Windows Phone 8プロジェクトでMVVM Lightを使用しようとしたApp.xamlのエラー

<ResourceDictionary> 
    <vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" /> 
    <ResourceDictionary.MergedDictionaries></ResourceDictionary.MergedDictionaries> 
</ResourceDictionary> 

これらの行がちょうど終わる</Application.Resources>タグの前に配置されている:MVVM光が線である追加しました。エラー一覧ペインで報告 エラーです:「:sdkVoiceAlarmClockWP8CS.ViewModel CLR名前空間」 各辞書は

  • 関連するキーを持っている必要があります

    • 名「ViewModelLocatorは」名前空間に存在しません。

      これは、<ResourceDictionary>タグにはキー属性がないため意味があるようです。しかし、ブロックの外にブロックのブロックを移動しようとすると、まったく新しいエラーが発生します。

      限りViewModelLocatorの問題に関しては、私はダブルチェックし、次の名前空間を属性として<アプリケーション>タグに追加され、それはすべてのエラーにフラグが付けられていません。

      xmlns:vm="clr-namespace:sdkVoiceAlarmClockWP8CS.ViewModel" mc:Ignorable="d" 
      

      Windows Phone 7プロジェクトでこれとまったく同じ一連の行が正常に動作する理由と、Windows Phone 8プロジェクトでの名前空間の問題を修正する方法を教えてください。私は前にこの問題を抱え

      <?xml version="1.0" encoding="utf-8"?> 
      <!-- 
          Copyright (c) 2012 Microsoft Corporation. All rights reserved. 
          Use of this sample source code is subject to the terms of the Microsoft license 
          agreement under which you licensed this sample source code and is provided AS-IS. 
          If you did not accept the terms of the license agreement, you are not authorized 
          to use this sample source code. For the terms of the license, please see the 
          license agreement between you and Microsoft. 
      
          To see all Code Samples for Windows Phone, visit http://go.microsoft.com/fwlink/?LinkID=219604 
      --> 
      <Application x:Class="AlarmClockWithVoice.App" 
            xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" 
            xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" 
            xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit" 
            xmlns:telerikPrimitives="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Primitives" 
            xmlns:p1="http://schemas.microsoft.com/winfx/2006/xaml" 
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
            xmlns:vm="clr-namespace:sdkVoiceAlarmClockWP8CS.ViewModel" mc:Ignorable="d" 
            > 
      
          <!--Application Resources--> 
          <Application.Resources> 
           <Style x:Key="TransitionPageStyle" TargetType="phone:PhoneApplicationPage"> 
            <Setter Property="toolkit:TransitionService.NavigationInTransition"> 
             <Setter.Value> 
              <toolkit:NavigationInTransition> 
               <toolkit:NavigationInTransition.Backward> 
                <toolkit:TurnstileTransition Mode="BackwardIn" /> 
               </toolkit:NavigationInTransition.Backward> 
               <toolkit:NavigationInTransition.Forward> 
                <toolkit:TurnstileTransition Mode="ForwardIn" /> 
               </toolkit:NavigationInTransition.Forward> 
              </toolkit:NavigationInTransition> 
             </Setter.Value> 
            </Setter> 
            <Setter Property="toolkit:TransitionService.NavigationOutTransition"> 
             <Setter.Value> 
              <toolkit:NavigationOutTransition> 
               <toolkit:NavigationOutTransition.Backward> 
                <toolkit:TurnstileTransition Mode="BackwardOut" /> 
               </toolkit:NavigationOutTransition.Backward> 
               <toolkit:NavigationOutTransition.Forward> 
                <toolkit:TurnstileTransition Mode="ForwardOut" /> 
               </toolkit:NavigationOutTransition.Forward> 
              </toolkit:NavigationOutTransition> 
             </Setter.Value> 
            </Setter> 
           </Style> 
           <ResourceDictionary> 
            <vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" /> 
            <ResourceDictionary.MergedDictionaries></ResourceDictionary.MergedDictionaries> 
           </ResourceDictionary> 
          </Application.Resources> 
      
          <Application.ApplicationLifetimeObjects> 
           <!--Required object that handles lifetime events for the application--> 
           <shell:PhoneApplicationService Launching="Application_Launching" Closing="Application_Closing" Activated="Application_Activated" Deactivated="Application_Deactivated" /> 
          </Application.ApplicationLifetimeObjects> 
      
      </Application> 
      
  • 答えて

    2

    :これはここで、より複雑な問題のためである念の

    は全体App.xamlファイルです。それはWP8に動作させるためには、これを置き換える:ちょうどこれにより

    <ResourceDictionary> 
        <vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" /> 
        <ResourceDictionary.MergedDictionaries></ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
    

    <vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" /> 
    

    をしかし、私はにすべてを挿入し、それはWP7で動作理由を気にしなくWP8

    +1

    MVVM Lightのようなサウンドは、NuGetスクリプトを更新する必要があります。 –

    +0

    あなたはロック:) –

    0

    していませんこのstackoverflow questionに既に記載されているように、必要なすべての名前空間を持つApplicationResourcesではなくResourceDictionary。

    関連する問題