WPFConverter转换导致VisualStudio设计器异常如下所示的转换器会导致2008VisualStudio设计器不显示xaml,并错误输出“specifiedconversioninvalid”。例外。publicclassItemsVisibilityToGridColumnWidthConverter:IMultiValueConverter{publicobjectConvert(object[]values,TypetargetType,objectparameter,CultureInfoculture){//两条违规线...varitemsVisibility=(Visibility)values[0];varorientation=(Orientation)values[1];如果(方向==Orientation.Horizo??ntal&&itemsVisibility!=Visibility.Visible){returnnewGridLength(0);}返回新的GridLength(4,GridUnitType.Star);}publicobject[]ConvertBack(objectvalue,Type[]targetTypes,objectparameter,CultureInfoculture){thrownewNotImplementedException();}}更改强制转换以使用此方法可以解决此问题:staticclassEnumCaster{internalstaticOrientationCastAsOrientation(objectvalue){if(valueisEnum){return(Orientation)value;}返回Orientation.Horizo??ntal;}internalstaticVisibilityCastAsVisibility(objectvalue){if(valueisEnum){return(Visibility)value;}返回Visibility.Visible;我的问题是,wtf是VisualS这是工作室设计师的错误吗?还有,有没有更好的办法,把这些对象转换成对应的Enum,让设计者不至于丢出合适的东西?我认为这可能会发生,因为在某些时候,使用错误的参数调用转换器您可以按照以下步骤在设计器中调试转换器调用:这样您应该能够检查传递给转换器的参数我认为设计者在做第一个例子中的转换器,因为value[0]和value[1]为空,所以无法进行转换。如果您检查null那么这应该可以解决问题。第二个示例基本上是在使用“is”关键字时检查空值。以上就是C#学习教程的全部内容:WPFConverter转换导致VisualStudio设计器异常。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
