在Store App中进行一些代码更改后,我遇到了编译错误:
- > System.Void不能在C#中使用 - 使用typeof(void)来获取void类型对象。
问题是:这来自生成的文件:XamlTypeInfo.g.cs。
case "System.Void"
userType= new ... ,typeof(global::System.Void), ...
...
回滚更改并没有帮助,因为删除bin& obj,重启等等。
实际的System.Void案例条目是否可能表明代码生成器无法识别XAML文件中的某些内容?工作XamlTypeInfo.g.cs中是否有System.Void条目?
---附加--- 我现在可以在更改特定行时产生编译错误。我有一个从ItemsControl派生的自定义控件。我定义了一个工作正常的常规DP。我还为Template,TemplateSelector和Style提供AttachedProperties。想象一下通过AttachedProperty获取Label的Textbox,它不仅仅是一个字符串,而是像HeaderedControls一样,你可以为Lable定义一个模板等。
问题与AttachedProp的获取/设置方法有关。当我将Getter返回类型更改为DataTemplate或我完全注释掉Setter时,编译错误会出现:
public static DataTemplate GetLabelTEmplate(UIElement element)
{
return (DataTemplate)element.GetValue(LabelTemplateProperty;
}
public static void SetLabelTemplate(UIElement element, object value)
{
element.SetValue(LabelTemplateProperty, value);
}
任何想法都将受到高度赞赏。
祝你好运 Gope
答案 0 :(得分:0)
在向微软提交错误投诉后,他们向我指出了问题:setter的值不能是object类型。 XamlTypeInfo生成需要此信息,因此当我将对象更改为 DataTemplate 时,它已编译。
虽然我还没有尝试过,但我相信对象适用于纯WPF,但对于Win 8 Store应用程序,这会导致编译错误。有趣的东西...... :)