由于 WPF 中的 UserControls 必须具有无参数的构造函数,因此为它们提供相当复杂的数据的正确方法是“接近”构造时间所需的。我已经尝试为此使用依赖属性,但是遇到了 Visual Studio 设计器在尝试将诸如 a 之类的东西传递给Dictionary<string,MyObject>
类型IDictionary<string,MyObject>
化依赖属性时遇到的问题。在某些时候,它必须需要精确的编译时类型匹配,否则设计器中不会出现 XAML,尽管应用程序执行得很好。
基本上,我想要一种很好的方法来将通常会传递给构造函数的东西传递给用户控件。最好的方法是什么?
更新:有问题的用户控件将始终从 XAML 创建,因此除了无参数构造之外,还不能选择非无参数构造。
更新 2:一个有趣的想法是从无参数构造函数中访问一些东西,我可以从中获取我的初始化数据。可能会问这样一个问题:我已经初始化的祖先中的哪个实现了 IMyDataProvider 接口?这可能类似于相对源到祖先类型绑定的工作方式,除了从用户控件构造函数以编程方式完成。