如何打开具有两次或更多依赖属性的窗口?

时间:2012-03-16 08:47:50

标签: wpf window dependency-properties

这是一个非常直截了当的问题。

我在WPF项目中有我的主窗口,我希望它打开一个具有依赖属性的特定窗口。现在第一次围绕它并没有抱怨它。但是后续尝试打开窗口会给我一个关于已经注册的依赖属性的错误,并且它无法再次注册它。

我尝试将窗口保持为全局变量,但是在尝试重新打开已关闭的窗口时出现了明显的错误。

那么我需要做些什么才能重新打开窗口,而不是因为它试图重新注册属性而停在我的轨道上?

我的主要MO是每次需要打开时重新创建窗口(标准对话框/窗口程序)。

我注册了这样的属性:

public partial class MessageAndWaitingWindow : Window
{
        public DependencyProperty CustomMessageProperty =
            DependencyProperty.Register("CustomMessage", typeof(string), typeof(MessageAndWaitingWindow));
        public DependencyProperty WaitingProperty =
            DependencyProperty.Register("Waiting", typeof(string), typeof(MessageAndWaitingWindow));
        public DependencyProperty WaitingPanelVisibilityProperty =
            DependencyProperty.Register("WaitingPanelVisibility", typeof(Visibility), typeof(MessageAndWaitingWindow));

        // Rest of the class.
}

2 个答案:

答案 0 :(得分:2)

听起来你正在错误的地方注册你的依赖属性。即。不是静态的。没有代码,人们只能猜测。

答案 1 :(得分:1)

听起来像是在实例构造函数中注册DependencyProperty或者将DependencyProperty声明为非静态。 确保将DependencyProperty字段定义为静态,并将其注册到静态构造函数中或将其注册为内联。