多重绑定未设置值

Multibinding unset value

我有一个 PdfViewerView.xaml (UserControl),其中包含一个名为 "PdfViewerCtrl" 的控件。 现在我得到一个带有上下文菜单的 ListBox,如果用户单击上下文菜单项,则会出现一个带有多重绑定触发器的事件:

<ContextMenu>
              <MenuItem Header="Löschen"/>
              <i:Interaction.Triggers>
                 <i:EventTrigger
                                    EventName="PreviewMouseDown">
                    <i:InvokeCommandAction
                                        Command="{Binding DeleteAnnotationCmd}">
                       <i:InvokeCommandAction.CommandParameter>
                          <MultiBinding Converter="{StaticResource MultiBindingConv}">
                             <Binding ElementName="PdfUserCtrl" Path="PdfViewerCtrl" />
                             <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}" Path="PdfViewerCtrl" />
                          </MultiBinding>
                       </i:InvokeCommandAction.CommandParameter>
                    </i:InvokeCommandAction>
                 </i:EventTrigger>
              </i:Interaction.Triggers>
           </ContextMenu>

我试图将 PdfViewerCtrl(我在开头提到的)作为参数传递,但它始终是 DependencyProperty.UnsetValue

如您所见,我尝试了两种绑定到 PdfViewerCtrl 的方法,但都不起作用。

尝试使用 x:Reference 标记扩展将 Tag 属性 设置为 PdfViewerCtrl,然后绑定到 Tag 属性的 ContextMenu

<ContextMenu Tag="{x:Reference PdfViewerCtrl}">
    <MenuItem Header="Löschen"/>
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="PreviewMouseDown">
            <i:InvokeCommandAction Command="{Binding DeleteAnnotationCmd}">
                <i:InvokeCommandAction.CommandParameter>
                    <MultiBinding Converter="{StaticResource MultiBindingConv}">
                        <Binding RelativeSource="{RelativeSource AncestorType=ContextMenu}" Path="Tag" />
                    </MultiBinding>
                </i:InvokeCommandAction.CommandParameter>
            </i:InvokeCommandAction>
        </i:EventTrigger>
    </i:Interaction.Triggers>
</ContextMenu>