【发布时间】:2023-03-31 06:59:01
【问题描述】:
我想创建没有可视元素的简单实用程序类并在 XAML 中创建它,以便我可以定义数据绑定。我尝试创建从DependencyObject 派生的类并在Window.Resources 部分创建它,但它不调用任何构造函数。
【问题讨论】:
-
我找到了解决这个问题的方法——将
FindResource("myClass");放在主窗体构造函数中。
我想创建没有可视元素的简单实用程序类并在 XAML 中创建它,以便我可以定义数据绑定。我尝试创建从DependencyObject 派生的类并在Window.Resources 部分创建它,但它不调用任何构造函数。
【问题讨论】:
FindResource("myClass"); 放在主窗体构造函数中。
您可以在 app.xaml 中实例化您的类,只需将您的命名空间添加到其中
xmlns:yourNamespace="clr-namespace...."
智能感知很容易提供帮助。
然后在 Application.Resources 中创建你的类
<Application.Resources>
<yourNamespace:YourClass x:Key="yourClassInstanteName" />
</Application.Resources>
希望对你有帮助。
【讨论】:
看起来实例是在您实际使用它们时创建的。我找到了解决此问题的肮脏解决方法 - 将 FindResource("myClass"); 放在主窗体构造函数中。
【讨论】:
我知道我正在发布一个旧问题,但我在尝试自己寻找答案时遇到了这个问题。大L贴的代码确实是正确的:
xmlns:yourNamespace="clr-namespace...."
在应用程序资源中放置一个副本:
<Application.Resources>
<yourNamespace:YourClass x:Key="yourClassInstanteName" />
</Application.Resources>
此信息的另一个关键是该类需要具有默认构造函数。所以在 Class 源代码中你应该有一个这样的方法:
public yourClassName()
【讨论】: