访问自定义控件中的另一个数据上下文
本文关键字:数据 上下文 另一个 自定义控件 访问 | 更新日期: 2023-09-27 18:03:59
Stackoverflowers你好,
在一个。xaml文件中,我已经为关联的ViewModel设置了一个数据上下文。
d:DataContext="{d:DesignInstance Contents:OverlayDesignerViewModel}">
在文件的后面,我想使用一个从System.Windows.Controls.Canvas继承的类。
我想设置交互。触发器,但我希望命令在xml文件开头定义的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>
然而,我有一个错误:"不能解决属性CanvasMouseDownCommand在数据上下文类型的对象"。
如何解决?
这里缺少Mode=FindAncestor
Command="{Binding Path=DataContext.CanvasMouseDownCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}"