我在主页面里嵌套了一个子页面,然后点击子页面的按钮发现调用不了子页面的命令,如何解决?

我在主页面里嵌套了一个子页面,然后点击子页面的按钮发现调用不了子页面的命令

img


现在我想调用子页面的命令该怎么办

问题已解决了,感谢各位大佬指教。

按钮要关联上你的子页面的创建函数,才能点击(可以具体一点问题嘛)

“Devil组”引证GPT后的撰写:
你可以使用以下方法:

  • 使用命令绑定:在子页面中定义一个命令,然后在主页面中将该命令与子页面中按钮的 Command 属性绑定。这样当按钮被点击时,主页面就会调用子页面中的命令。你需要确保子页面的 DataContext 正确设置,以便主页面能够找到子页面的命令。
  • 通过事件传递参数:在子页面中定义一个事件,然后在主页面中订阅该事件。当按钮被点击时,子页面会触发该事件并将需要传递的参数传递给主页面。主页面可以根据这些参数调用子页面的命令。

下面是一个使用命令绑定的示例代码:

<UserControl x:Class="WpfApp1.ChildPage">
    <UserControl.Resources>
        <local:CustomCommand x:Key="MyCommand"/>
    </UserControl.Resources>
    
    <StackPanel>
        <Button Command="{StaticResource MyCommand}" Content="Click me"/>
    </StackPanel>
</UserControl>



在主页面中:


<Window x:Class="WpfApp1.MainWindow"
        xmlns:local="clr-namespace:WpfApp1"
        xmlns:child="clr-namespace:WpfApp1.Child"
        Title="MainWindow">
    <Grid>
        <child:ChildPage x:Name="Child"/>
        <Button Command="{Binding ElementName=Child, Path=DataContext.MyCommand}" Content="Click child command"/>
    </Grid>
</Window>


在这个例子中,子页面中定义了一个名为 MyCommand 的命令,并将其绑定到了一个按钮上。在主页面中,用 ElementName 和 Path 绑定到了子页面的 DataContext 中的 MyCommand 属性,以便在主页面中调用该命令。

第一,你需要等子页面加载完毕,你需要检查子页面的 onload 结果
第二,你需要将子页面封装到一个变量里,并检测子页面是否支持你发送的指令
比如用的是 iframe ,name 是 tabPage

var newPage = open('页面地址','tabPage')
newPage.onoad = function(){主界面按钮变为可用}
主页面按钮.click(function(){newPage.add() // 相应方法调用})