相对源绑定找不到框架祖先

本文关键字:框架 祖先 找不到 绑定 相对 | 更新日期: 2023-09-27 18:37:08

我正在尝试将我应用Command的实际Frame对象作为CommandParameter传递

XAML

<Frame NavigationUIVisibility="Hidden" Source="{Binding TargetContentPage}">
       <i:Interaction.Triggers>
             <i:EventTrigger EventName="ContentRendered">
                    <command:EventToCommand Command="{Binding ContentRendered}" CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=Frame}}"/>
             </i:EventTrigger>
       </i:Interaction.Triggers>
</Frame>

C#

public RelayCommand<Frame> ContentRendered
{
     get
     {
          return new RelayCommand<Frame>(frame => frame.RemoveBackEntry());
     }
}

运行时,会引发一个NullReferenceException,指出frame为空。上面的代码可能有什么问题?

相对源绑定找不到框架祖先

Frame 和 EventToCommand 之间没有祖先/后代关系。请改用元素名称绑定:

<Frame x:Name="frame" ...>
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="ContentRendered">
            <command:EventToCommand
                Command="{Binding ContentRendered}"
                CommandParameter="{Binding ElementName=frame}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
</Frame>