如何创建usercontrol的现有实例的对象实例?
public partial class Rfid : UserControl
这是你用窗户做的方法吗?
public partial class MainWindow : Window
MainWindow my = Application.Current.Windows.OfType<MainWindow>().FirstOrDefault();
答案 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 />
两者都在运行时创建Rfid
(UserControl
)类的实例。
这是你用窗户做的方法吗?
没有。这将引用从MainWindow
集合属性引用的Application.Current.Windows
类的现有实例。它没有构造任何新的窗口对象。