C# 调用子用户控件';s函数

C# 调用子用户控件';s函数,c#,wpf,xaml,C#,Wpf,Xaml,我有一扇窗户 <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="GamingClient.UserInterface.MenuPartieRapide" xmlns:local="clr-namespa

我有一扇窗户

<Window 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        x:Class="GamingClient.UserInterface.MenuPartieRapide"
        xmlns:local="clr-namespace:GamingClient.UserInterface">

        <local:MapCarrousel />

</Window>
我尝试在我的窗口中为我的MapCarrousel添加一个名称

<local:MapCarrousel Name="Test" />
  • 测试在命名空间中不可访问?智能感知无法识别它
  • 在#1之后,我无法对未定义的对象调用函数
  • 然后我尝试了以下操作:在用户控件中添加x:name,并在我的Window.xaml.cs中的一个函数中调用该x:name

    以前也有过同样的结果


    问题是:如果用户控件不是动态创建的(即new user-control()),而是由设计器添加的,那么作为我所在的命名空间/对象的子级的用户控件上的公共函数如何调用?

    当您尝试在
    MapCarrousel
    控件上设置
    Name
    属性时,您应该有如下错误:

    错误2,因为“MS.Internal.Design.Metadata.ReflectionTypeNode”在同一程序集中实现,因此必须设置x:Name属性,而不是MS.Internal.Design.Metadata.ReflectionPropertyNode属性

    也就是说,你不能这样做:

    <local:MapCarrousel Name="Test" />
    
    <local:MapCarrousel Name="Test" />
    
    void function Test()
    {
           Test.GetMapId();
    }
    
    <local:MapCarrousel Name="Test" />
    
    <local:MapCarrousel x:Name="Test" />
    
    Test.GetMapId();