2017-06-13 75 views
0

我试图将我的代码后面的对象移动到我的资源在XAML中。ObjectDataProvider错误查找棱镜类和构造函数参数

我想对这些对象的移动

public partial class MainView : Window 
{ 

    public EventAggregator IEA; 
    public OrderViewModel order { get; set; } 
    public MenuViewModel menu { get; set; } 

    public MainView() 
    { 
     InitializeComponent(); 
     this.DataContext = this; 

     IEA = new EventAggregator(); 

     order = new OrderViewModel(IEA); 

     menu = new MenuViewModel(IEA); 

    } 

} 

这里

<Window.Resources> 
    <ObjectDataProvider x:Key="IEA" d:IsDataSource="True" ObjectType="{x:Type Prism.Events:EventAggregator}"/> 
    <ObjectDataProvider x:Key="OVM" d:IsDataSource="True" ObjectType="{x:Type local:OrderViewModel}"> 
     <ObjectDataProvider.ConstructorParameters> 
      <StaticResource ResourceKey="IEM"/> 
     </ObjectDataProvider.ConstructorParameters> 
    </ObjectDataProvider> 
    <ObjectDataProvider x:Key="MVM" d:IsDataSource="True" ObjectType="{x:Type local:MenuViewModel}"> 
     <ObjectDataProvider.ConstructorParameters> 
      <StaticResource ResourceKey="IEM"/> 
     </ObjectDataProvider.ConstructorParameters> 
    </ObjectDataProvider> 
</Window.Resources> 

但很明显,即时通讯错误从棱镜引用EventAggregator类,因为我得到以下错误:

Error: 'Prism.Events' is an undeclared namespace 

回答

2

对我来说这个工作:

xmlns:prismEvents="clr-namespace:Prism.Events;assembly=Prism" 


<ObjectDataProvider x:Key="IEA" 
         d:IsDataSource="True" 
         ObjectType="{x:Type prismEvents:EventAggregator}" />