制作 UserControl 静态 WPF

Making a UserControl static WPF

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

我还有下面两个UserControls:

1) UC1.

2) UC2 - 仅包含 ListBox.

UserControl

UC1UC2 都在 MyApp 中被引用。 UC2 也在 UC1 中引用。

我希望将 UC2 视为 Logger。因此,我想从 UC1MyApp 静态访问 UC2LisBox。我想将它放在 MyApp 的主要 window 上,但可以从引用 MyApp.

的所有项目访问它

我试图使 UC2 静态化,但运气不佳。

这可能吗?

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

但是,更好的解决方案是使用静态 class 作为记录器,并将您的用户控件绑定到此 class(将您的列表框绑定到附加的记录器 属性)。