C# 创建UserControl静态WPF

C# 创建UserControl静态WPF,c#,wpf,xaml,static,user-controls,C#,Wpf,Xaml,Static,User Controls,我有一个名为MyApp的应用程序 我还有以下两个用户控件: 1 UC1 2 UC2-仅包含列表框的用户控件 UC1和UC2都在MyApp中引用。UC1中也引用了UC2 我希望将UC2视为记录器。因此,我想从UC1和MyApp静态访问UC2的LisBox。我想把它放在MyApp的主窗口上,但可以从MyApp引用的所有项目中访问它 我试图在没有任何运气的情况下使UC2静止 这是可能的吗?用户控件并没有真正定义用于此用途,因为它们包含需要实例化的图形元素。在实例化列表框之前,无法访问它。这就是为什么您

我有一个名为MyApp的应用程序

我还有以下两个用户控件:

1 UC1

2 UC2-仅包含列表框的用户控件

UC1和UC2都在MyApp中引用。UC1中也引用了UC2

我希望将UC2视为记录器。因此,我想从UC1和MyApp静态访问UC2的LisBox。我想把它放在MyApp的主窗口上,但可以从MyApp引用的所有项目中访问它

我试图在没有任何运气的情况下使UC2静止


这是可能的吗?

用户控件并没有真正定义用于此用途,因为它们包含需要实例化的图形元素。在实例化列表框之前,无法访问它。这就是为什么您需要具有InitializeComponent和after的普通构造函数,以及一个静态属性来管理listbox


但是,更好的解决方案是使用一个静态类作为logger,并将usercontrol绑定到此类将listbox绑定到logger附加属性。

创建此静态类时出现了什么错误?如果您试图将用户控件设置为静态,我认为这是不可能的。我编写了公共静态部分类AppLogger,但出现了一个错误:“InitializeComponent”:无法在静态类中声明实例成员,但与此错误相关的错误还有9个。但是,您不能将类设置为静态,你可以为你的ListBox创建一个静态访问器你是说“属性?”?如果是这样的话,那么我知道我可以,难道没有更好的方法吗?用户控件并不是为这种用途定义的,因为它们包含需要实例化的图形元素。在实例化列表框之前,无法访问它。这就是为什么您需要普通构造函数,然后需要一个静态属性来管理listbox