2017-06-13 78 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}" />