![](/img/trans.png)
[英]Updating WPF progress bar value inside a user control from another method in a separate class?
[英]How run a method inside a wpf user control (something.xaml.cs) from another class?
假设您有一个用户控件,其中有一种方法可以重置表格:
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的代码以这种方式工作。 我已经进行了很多搜索来找出答案,但是我找不到正确的方法。
您应该能够在xaml中设置x:Name属性: x:Name="control"
这将为您的实例提供一个变量名。 然后,在代码中,您可以将实例称为您为其指定的名称。 例如control.myReset();
根据@StijnvanGaal的说法,它不是一个非常好的方法,无论如何,您都可以检索任何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();
}
}
基本上,这将在Grid2的子级的所有“ Project_wpf.UserControlRef”类型的UserControle中激活MyReset()方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.