如何创建usercontrol的现有实例的对象实例?

时间:2017-06-07 16:38:29

标签: c# wpf static user-controls

如何创建usercontrol的现有实例的对象实例?

public partial class Rfid : UserControl 

这是你用窗户做的方法吗?

public partial class MainWindow : Window
MainWindow my = Application.Current.Windows.OfType<MainWindow>().FirstOrDefault();

2 个答案:

答案 0 :(得分:0)

Application.Current.Windows是应用程序中当前存在的所有窗口的集合。你不是在“制造”任何东西。窗口是一个对象。窗口实例是窗口的实例。你正在从集合中提取它的引用。

您问题中的

MainWindow my是对MainWindow实例的引用。

没有所有用户控件或任何控件的集合。您可以获得窗口的立即子控件,但是您必须以递归方式查看其子项及其子项,等等。

在正在定义用户控件实例的XAML中,为其指定x:Name属性。然后,在父级中,您可以按名称引用它。

MainWindow.xaml

<local:Rfid 
    x:Name="FooBar"
    MyProperty="Some Value"
    />

MainWindow.xaml.cs

这只是一个例子,因为你没有说出你想用它做什么,或者在哪里或为什么。

public void SomeButton_Click(Object sender, RoutedEventArgs e)
{
    FooBar.MyProperty = "Some other value";
}

当然,您应该使用MVVM做到这一点。

答案 1 :(得分:0)

  

如何创建usercontrol的现有实例的对象实例?

就像你要创建任何其他类的实例一样:

Rfid obj = new Rfid();

或者在XAML中:

<local:Rfid />

两者都在运行时创建RfidUserControl)类的实例。

  

这是你用窗户做的方法吗?

没有。这将引用从MainWindow集合属性引用的Application.Current.Windows类的现有实例。它没有构造任何新的窗口对象。