2012-11-06 22 views
7

Tôi biết có rất nhiều chủ đề liên quan đến câu hỏi này nhưng tôi không thể tìm thấy một giải pháp phù hợp hoàn hảo cho vấn đề của tôi ... có thể không có gì?DataTemplate trong một tài nguyên riêng biệt ResourceDictionary

Hiện tại tôi có một số UserControl có điều hướng cho phép người dùng chuyển đổi giữa các màn hình khác nhau. Các màn hình này được xác định trong phần Resources trong số UserControl của tôi là DataTemplate.

Something như thế:

<DataTemplate TargetType={x:Type vm:ViewModel1}> 
    ... 
</DataTemplate> 
<DataTemplate TargetType={x:Type vm:ViewModel2}> 
    ... 
</DataTemplate> 
<DataTemplate TargetType={x:Type vm:ViewModel3}> 
    ... 
</DataTemplate> 

Ok và những gì tôi muốn làm là đặt những DataTemplates trong một file XAML riêng biệt và liên kết tập tin này để một phần nguồn lực của UserControl. Tôi có thực sự phải thực hiện từ điển tài nguyên XAML mới này trên toàn cầu có sẵn trong ứng dụng của tôi (thêm nó vào các tài nguyên App.xaml) hay có cách nào khác/tốt hơn không?

Trả lời

13

Không bạn không phải làm cho nó toàn cầu. Chỉ cần khai báo từ điển tài nguyên trong phần tài nguyên điều khiển người dùng của bạn giống như cách bạn đã làm trong app.xaml.

<Control.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="Dictionary1.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Control.Resources> 

Bạn có thể trỏ đến tệp bằng đường dẫn tệp tương đối "..\Folder\Folder\Dictionary.xaml" nếu cần.

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