2013-02-16 24 views
6

Tôi nhận được dòng nguệch ngoạc bên dưới dòng mã thứ 6 bên dưới, cho tôi lỗi được nêu trong tiêu đề. Tôi chỉ cần di chuyển đến VS 2012 và mọi thứ đã hoạt động tốt trong VS 2010. Tôi cảm thấy có lẽ vấn đề thực sự ở nơi khác ... ai đó có thể cho tôi biết nếu có điều gì đó sai với xaml này?Thuộc tính "Khóa" chỉ có thể được sử dụng trên phần tử được chứa trong "IDictionary"

<Application x:Class="SageWpf.App" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:local="clr-namespace:SageWpf"> 
    <Application.Resources> 
     <ResourceDictionary x:Key="rd"> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary> 
        <local:AppBootStrapper x:Key="bootstrapper"/> 
        <local:EffectConverter x:Key="effectConverter"/> 
        <local:VisibilityConverter x:Key="visibilityConverter"/> 
       </ResourceDictionary> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 


    </Application.Resources> 
</Application> 

Trả lời

10

<ResourceDictionary x:Key="rd"> không hợp lệ. Hãy xóa x:Key từ đó.

Ngoài ra, đó là cách xấu để cấu trúc tài nguyên của bạn. Thay đổi nó thành:

<Application.Resources> 
    <ResourceDictionary> 
     <local:AppBootStrapper x:Key="bootstrapper"/> 
     <local:EffectConverter x:Key="effectConverter"/> 
     <local:VisibilityConverter x:Key="visibilityConverter"/> 
    </ResourceDictionary> 
</Application.Resources> 

Chỉ sử dụng từ điển hợp nhất nếu bạn có tài nguyên được xác định trong tệp XAML khác và bạn muốn nhập chúng ở đây.

+0

Được rồi, tôi đã tự hỏi tại sao nó cần phải như vậy nhưng để lại nó kể từ ví dụ Caliburn.Micro đã làm nó với từ điển hợp nhất. Thành thật mà nói, tôi không hoàn toàn nhớ tại sao tôi thêm x: Key = "rd" vào lúc này, nhưng tôi có thể thề là sửa một số lỗi khác mà tôi đã nhận được ... và tôi khá chắc là nó đã hoạt động trong năm 2010 nhưng có lẽ tôi chỉ uống thuốc điên. Vấn đề bây giờ là tôi vẫn nhận được cùng một lỗi với giải pháp của bạn, nhưng dòng nguệch ngoạc là trên dòng bootsrapper. –

+0

đã sửa chữa. Xem chỉnh sửa của tôi. –

+0

Tôi đã từng nhầm lẫn ... lỗi dưới dòng bootstrapper là một thứ hoàn toàn khác và tôi đã sửa lỗi đó; tuy nhiên tôi vẫn nhận được cùng một thông báo lỗi gốc. Dòng nguệch ngoạc nằm ngay dưới ký tự '<' của thẻ Mở ứng dụng. –

Các vấn đề liên quan