Hello Stackoverflowers,
在.xaml文件中,我已将datacontext设置为关联的ViewModel。
d:DataContext="{d:DesignInstance Contents:OverlayDesignerViewModel}">
稍后在文件中,我想使用从System.Windows.Controls.Canvas继承的类。
我想在此控件中设置Interaction.Triggers,但我希望Command位于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>
但是我有一个错误:“无法在类型对象的数据上下文中查询属性CanvasMouseDownCommand”。
如何解决这个问题?
答案 0 :(得分:0)
你在这里遗失Mode=FindAncestor
Command="{Binding Path=DataContext.CanvasMouseDownCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}"