我的应用程序运行并且工作正常。现在我想使用VS2012设计器来设计我的MainWindow
,它是来自不同库的HandledWindow
的派生类型。
以下是我MainWindow
的XAML代码:
<UI:HandledWindow x:Class="Diamond.Executor.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:UI="clr-namespace:Diamond.Core.UI;assembly=Diamond.Core"
Title="MainWindow"
Height="250"
Width="500"
Style="{DynamicResource WindowStandard}"
WindowStartupLocation="CenterScreen"
Loaded="Initialise">
这是基本类型HandledWindow
:
namespace Diamond.Core.UI
{
public class HandledWindow : Window
{
这里有什么问题?当我运行我的应用程序时,任何工作,绑定,样式和它的模板。 但突然之间,设计师说&#34; &#39; UI&#39;没有映射到命名空间&#34;。我只是没有得到它。它真的没有理由阻止我的发展。也许VS2012的错误,但我想确保我做的一切正确,如果有办法传递那个bug并继续使用设计师?
答案 0 :(得分:4)
我发现了导致这个问题的原因,但我不知道为什么,因为通过语法它没关系,从逻辑上说它可行。但是XAML的desginer无法正常使用这种数据绑定表达式:
FontSize="{Binding Path=(UI:HandledWindow.FontSizeTitle), Mode=OneWay}"
(它是UI
命名空间内的一个样式的一部分,XAML因为这个表达而整体拒绝了)
然后我把它改成了这个表达式:
FontSize="{Binding FontSizeTitle, RelativeSource={RelativeSource TemplatedParent}}"
它完全相同,但现在XAML设计器再次工作并因为单个数据绑定表达式而停止忽略整个命名空间UI
。
无论如何,这个问题终于得到了解决。