2010-07-11 94 views
1

我正在嘗試將資源字典添加到我的silverlight-4應用程序中(建議在「將視圖應用於ViewModel」一章http://msdn.microsoft.com/en-us/magazine/dd419663.aspx文章中)。向Silverlight應用程序添加資源

第一個問題:我在MainPage中看不到任何資源。我是否正確理解我需要手動將資源字典添加到Silverlight應用程序中?

第2:當我這樣做,在Dictionary1.xaml文件

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:System="clr-namespace:System;assembly=mscorlib"> 
    <DataTemplate DataType="{x:Type vm:MyViewModel}"> 
     <vw:MyView /> 
    </DataTemplate> 
</ResourceDictionary> 

我得到一個錯誤:無法解析一個符號「數據類型」 ......

有什麼想法很熱這樣做?

+0

名稱空間前綴「vm」和「vw」似乎未定義。 – andyp 2010-07-11 20:51:11

回答

1

ad 1:MainPage有一個ResourceDictionary。您在XAML元素添加到它:

<MainPage> 
    <MainPage.ResourceDictionary> 
    <DataTemplate> 
     <vw:MyView /> 
    </DataTemplate> 
    </MainPage.ResourceDictionary> 
    ... 

您可以將資源字典添加到MainPage.ResourceDictionary利用資源字典的來源和性質MergedDictionaries:

<MainPage> 
    <MainPage.ResourceDictionary> 
    <ResourceDictionary.MergedDictionaries> 
     <ResourceDictionary Source="Dictionary1.xaml"/> 
    </ResourceDictionary.MergedDictionaries> 
    </MainPage.ResourceDictionary> 
    ... 

廣告2:DataTemplate中不在Silverlight框架中有一個Property DataType。 :-(

+0

感謝您提供的信息......請允許我告訴我是否有任何可能使用Silverlight中的資源?謝謝提前 – Budda 2010-07-12 23:38:51

0

如果要在ResourceDictionary中,則還需要在DataTemplate中添加一個x:Key。