2010-07-11 66 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。

相关问题