当前位置: 首页 > 编程语言 > C#

KeyedCollection和d-DataContext设计错误分享

时间:2023-04-10 11:44:07 C#

KeyedCollection和d:DataContext设计错误请看下面的VS2013更新。当将类用作公开KeyedCollection的d:DesignInstance时,XAML设计器会抱怨以下警告:提供的泛型参数的数量不等于泛型类型定义的元数。参数名称:实例化问题可以通过以下简单过程重现:namespaceTest{publicpartialclassMainWindow:Window{publicMainWindow(){InitializeComponent();}}publicclassMyClass{publicKeyedCollectionSettingsModule{get;私有集;我无法为公开KeyedCollection的任何类提供设计时形状。知道这里发生了什么吗?更新:从VS2013开始,设计者处理KeyedCollection的行为已经改变(虽然仍然没有完全发挥作用)。上面的例子不再产生错误。但是,如果KeyedCollection使用某种类型(例如接口)作为TItem,则会生成以下错误:Theobjectyoucalledisnull。考虑以下示例:namespaceTest{publicpartialclassMainWindow:Window{publicMainWindow(){InitializeComponent();}}publicclassMyClass{publicKeyedCollectionMyCollection{get;私有集;}}publicinterfaceIInterface{字符串名称{get;放;我已经能够通过在设计实例类型前加上“d:Type”来解决这个问题:d:DataContext="{d:DesignInstanced:Type=local:MyClass}"这似乎是VS2013设计师的一个错误。我相信d:Type属性应该是d:DesignInstance属性的默认值。另外,奇怪的是,我只在KeyedCollection类中看到过这个问题。此外,d:DesignInstance用法的MSDN示例有时使用不带前缀的“Type”。在这个例子中,如果d:Type被省略或者前缀丢失,它会像我提到的那样产生一个设计时错误。如果我没有误解您的问题,请尝试****我希望这会有所帮助。我不得不从我的设计实例类中删除默认构造函数。以上就是《C#学习教程:KeyedCollectionandd:DataContext设计错误分享》的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢