zoukankan      html  css  js  c++  java
  • 'Provide value on 'System.Windows.StaticResourceExtension' threw an exception.'

    产生这个错误的原因是,StaticResource必须先定义再引用,但是DynamicResource就没有这个限制,为避免这个错误出现,可将StaticResource的定义放在Window.xaml的最前端,或者放在App.xaml中,例如:

    复制代码
    Window ...>  
      <Window.Resources>  
         <xxx x:Key="ExpenseDataSource" />  
         <DataTemplate x:Key="nameItemTemplate">  
            ....  
         </DataTemplate>  
    </Window>  
    <ListBox>  
       ...  
    </ListBox>  
    复制代码

    转自:http://blog.csdn.net/jane_sl/article/details/7389670

    但我遇到的问题是一个子工程中的usercontrol报此种错,于是做了以下动作:

    1.在主工程的App.xaml中加入了<ResourceDictionary Source="pack://application:,,,/Trisurf;component/Resources/DemoWindowStyles.xaml"/>

    2.在子工程的usercontrol的.xaml中加入DataContext="{Binding Source={StaticResource Locator}, Path=***ViewModel}(DataContext不是导致错误的原因,此处只是记录我的修改过程)

      子工程的app.xaml中加入

    复制代码
    <Application.Resources>
            <ResourceDictionary>
                <!--使用资源字典的合并资源功能-->
                <ResourceDictionary.MergedDictionaries>
                    <!--在这里可以指定多个资源文件名-->
                    <ResourceDictionary Source="Resource/DemoWindowStyles.xaml"/>
                </ResourceDictionary.MergedDictionaries>
                <vm:ViewModelLocator d3p1:Key="Locator" d:IsDataSource="True" 
                             xmlns:d3p1="http://schemas.microsoft.com/winfx/2006/xaml" 
                             xmlns:vm="clr-namespace:Trisurf.ViewModel" />
            </ResourceDictionary>     
      </Application.Resources>
    复制代码


    OK,问题解决。试了一下,我出现此错误的原因是没有在主程序的App.xaml中加入Resource。

  • 相关阅读:
    在ORACLE里用存储进程活期瓜分表
    TSM Server,Client,TDPO安装设置装备摆设手记
    用Linux完成Oracle自植物理备份
    在Red Hat Linux7.x/8.0下安设Oracle 9i
    运用Oracle9i数据库的细心事变
    科来网络分析系统 V6.0
    [恢]hdu 2034
    [恢]hdu 2041
    [恢]hdu 2015
    [恢]hdu 2035
  • 原文地址:https://www.cnblogs.com/Alex80/p/6903746.html
Copyright © 2011-2022 走看看