如何在另一个类的wpf用户控件(something.xaml.cs)中运行一个方法?

时间:2015-12-09 14:19:48

标签: c# wpf xaml

假设您有一个用户控件,其中有重置表单的方法:

public void myReset()
{
   text1.Text="";
   text2.Text="";
}

现在我想从clsMyClass中的方法调用这个myReset()方法

    class clsMyclass
    {

        public clsMyClass()
        {
        }
        // ==================== Methods  =================
        public double SomeMethod(double Val)
        {
            UserControlRef.myReset();
            //Do things...
        }
   }

我不知道如何为用户控件创建引用。我已经看到使用Revit Extension的代码以这种方式工作。我已经做了很多搜索来解决这个问题,但我找不到正确的方法。

2 个答案:

答案 0 :(得分:1)

您应该能够在xaml中设置x:Name属性:EmployeeService.Employee es_emp = new EmployeeService.Employee(); 这将为您的实例提供变量名称。然后在代码中,您可以将实例称为您给出的名称。例如x:Name="control"

答案 1 :(得分:1)

根据@StijnvanGaal,它不是真正好的方法,无论如何你可以检索任何UserControl和内容。这里有一个样本 假设您的usercontrol在grid2中,您可以通过这种方式访问​​它。

 int ChildNumber = VisualTreeHelper.GetChildrenCount(grid2);
            for (int i = 0; i < ChildNumber; i++)
            {
                Control v = (Control)VisualTreeHelper.GetChild(grid2, i);

                if (v.GetType().ToString() == "Project_wpf.UserControlRef")
                {
                    UserControlRef CM = v as UserControlRef;
                    Console.WriteLine(CM.Name); //you can check his name here
                    CM.myReset();

                }
            }

基本上这会激活你的MyReset()方法,所有类型为“Project_wpf.UserControlRef”的Usercontrole都是Grid2的孩子