Windows store apps WINRT XAML系统中存在无效编译错误

Windows store apps WINRT XAML系统中存在无效编译错误,windows-store-apps,winrt-xaml,Windows Store Apps,Winrt Xaml,在商店应用程序中进行了一些代码更改后,我遇到了一个编译错误: ->System.Void不能从C#使用——使用typeof(Void)获取Void类型对象 问题是:这来自一个生成的文件:XamlTypeInfo.g.cs case "System.Void" userType= new ... ,typeof(global::System.Void), ... ... 回滚更改没有帮助,例如删除bin和obj、重新启动等 实际的System.Void case条目是否表示代码生

在商店应用程序中进行了一些代码更改后,我遇到了一个编译错误:

->System.Void不能从C#使用——使用typeof(Void)获取Void类型对象

问题是:这来自一个生成的文件:XamlTypeInfo.g.cs

case "System.Void"
    userType= new ... ,typeof(global::System.Void), ...
    ...
回滚更改没有帮助,例如删除bin和obj、重新启动等

实际的System.Void case条目是否表示代码生成器无法识别XAML文件中的某些内容?工作XamlTypeInfo.g.cs中是否有System.Void条目

---加成--- 我现在可以在更改特定行时生成编译错误。我有一个从ItemsControl派生的自定义控件。我定义了一个正常的DP,它工作得很好。我还提供了模板、模板选择器和样式的附件属性。设想一个文本框,它通过AttachedProperty获取标签,它不仅是一个字符串,而且像HeaderedControl一样,您可以为标签定义模板等

该问题与AttachedProp的Get/Set方法有关。当我将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

在向微软提交错误投诉后,他们向我指出了一个问题:setter的值不能是object类型。XamlTypeInfo生成需要此信息,因此当我将对象更改为数据模板时,它将被编译


虽然我还没有尝试过,但我相信对象对于普通WPF来说是不错的,但对于Win 8应用商店应用程序来说,这确实会导致编译错误。有趣的事…:)

是否可以发布与此附加属性关联的XAML?尚未有XAML使用这些属性。只有控件,它不会编译。有趣的是,一位同事使用另一个分支的同一个项目手动添加这些AP并进行编译。XamlTypeInfo已正确生成。我将尝试创建一个新项目并将其移到另一个位置,只是为了看看它是否有效。我刚刚在connect上提交了一份带有附件的错误报告。microsoft:让我们看看他们是怎么想的。我原希望您的解决方案能有所帮助,但不幸的是,我一直收到相同的错误,即使我的setter值不是object类型,而是MediaCapture类型,当我试图将其绑定到CaptureElement时。显示CLR属性
公共静态MediaCapture GetMediaCaptureSource(DependencyObject CaptureElement){将CaptureElement.GetValue(MediaCaptureSourceProperty)返回为MediaCapture;}
公共静态void SetMediaCaptureSource(CaptureElement CaptureElement,MediaCapture MediaCapture){CaptureElement.SetValue(MediaCaptureSourceProperty,MediaCapture);}
Hmmm…与常见示例的唯一区别在于Setter中的第一个参数是CaptureElement类型。我的定义通常是UIElement,或者在您的情况下它可能是DependencyObject。您这样做可能是为了只允许在Capture元素上设置属性,但我不确定这是否是问题所在。无法检查虽然现在。也许只是将其更改为DependencyObject以进行快速测试。看来至少在WPF中这是不可能的。。。