2016-08-25 167 views
0

你好Stackoverflowers,訪問自定義控制

在的.xaml文件的另一個數據上下文,我已成立一個DataContext到相關視圖模型。

d:DataContext="{d:DesignInstance Contents:OverlayDesignerViewModel}"> 

在文件的後面,我想使用一個從System.Windows.Controls.Canvas繼承的類。

我想在此控件中設置Interaction.Triggers,但我希望命令位於在XAML文件開始時定義的DataContext中。

<Contents:DrawingCanvasCustom 
       Background="#00000000" 
       Name="_drawingCanvas" 
       Width="650" 
       Height="450"> 

     <i:Interaction.Triggers> 
      <i:EventTrigger EventName="CanvasMouseDown"> 
       <i:InvokeCommandAction Command="{Binding Path=DataContext.CanvasMouseDownCommand, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" 
            CommandParameter="{Binding ElementName=CanvasOverlayView}"/> 
      </i:EventTrigger> 

但是我有一個錯誤:「can not rsolve屬性CanvasMouseDownCommand在類型對象的數據上下文中」。

如何解決這個問題?

回答

0

你在這裏失蹤Mode=FindAncestor

Command="{Binding Path=DataContext.CanvasMouseDownCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}" 
+0

試了幾次後,我想通了,{結合CanvasMouseDownCommand}足以在我的情況。感謝您的快速啓發。 – Csi