我的WPF应用程序中的Xaml文件出错。我无法在Visual Studio设计器或Blend中看到我的控件。但是,应用程序编译并运行完美。
在Blend中,它表示存在无效的Xaml并且错误根本没有任何感觉,但是当我关闭控件时不再有错误。
在Visual Studio中,错误更明确。
Error 27 Invalid XmlnsDeclaration occurs in assembly 'Microsoft.Expression.Interactivity, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. XmlnsDeclaration references a namespace 'Microsoft.Expression.Interactivity.Layout' that is not in the assembly.
我对这个错误进行了研究,发现了一些有趣的事情。
解决方案1
使用命名空间 Microsoft.Expression.Interactivity.Layout 创建一个虚拟类。
结果?不工作。
解决方案2 使用...
xmlns:i="clr-namespace:Microsoft.Expression.Interactivity;assembly=Microsoft.Expression.Interactivity"
而不是
xmlns:i="http://schemas.microsoft.com/expression/2009/interactivity"
...添加我的参考资料。
结果?我已经这样做了。
仅在Blend中尝试了对模式URL的引用,但仍无法正常工作。
错误:
"The specified value cannot be assigned to the collection. The following type was expected : "TriggerAction".
使用此代码:
<interactivity:Interaction.Triggers><interactivity:EventTrigger EventName="SelectionChanged" ><my:CommandAction Command="{Binding BreedingListSelectionChanged}" SyncOwnerIsEnabled="True" /></interactivity:EventTrigger></interactivity:Interaction.Triggers
最后,我发现了来自Microsoft Only社区支持的人员this post。 他说这是一个已知的问题,它可能会在下一个版本中修复。
事实是,我现在需要它。
有人遇到过这个问题吗?
感谢。
答案 0 :(得分:3)
我就此确切行为提交了bug on Connect。
简短的回答是,这不会在VS 2008中得到纠正,但它确实在VS 2010中有效。我发现的最佳解决方案是使用Blend进行UI设计(使用表达式/ 2009 / interactivity语法)和设置Visual Studio以将XAML编辑为XML(不使用设计器)。这对我来说非常有效。