【问题标题】:XAML designed fails to load as cannot create a custom objectXAML 设计无法加载,因为无法创建自定义对象
【发布时间】:2009-01-28 04:59:51
【问题描述】:

我有一个在我的应用程序中使用的 XAML 表单,我将 Frame 类子类化为我自己的,并编辑了接口以指定我自己的内容类(因为我需要访问数据内容的属性绑定)。

问题出现在设计器中,编译器说它无法创建我的控件的实例 - 我尝试对有问题的属性位进行一些设计器检查,但也没有用。

如何让控件显示?在运行时运行良好...

XAML:

<Grid Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2">
 <views:PageFrame Name="Content_MainPage" Frame.NavigationUIVisibility="Hidden"/>                    
</Grid>

CS:

        public new BaseView Content 
    {
        get
        {
            if (DesignerProperties.GetIsInDesignMode(this))
            {
                return new BaseView();
            }
            else
            {
                return (BaseView)base.Content;
            }
        }
        set
        {
            if (DesignerProperties.GetIsInDesignMode(this))
            {
                base.Content = new BaseView();
                FrameTitle = "design mode";
            }
            else
            {
                base.Content = value;
                FrameTitle = value.Title;
            }
        }
    }

【问题讨论】:

    标签: c# xaml


    【解决方案1】:

    我在创建自己的 Panel 类时遇到了类似的问题。

    您的 PageFrame 类是否定义在 XAML 所在的同一程序集中?

    我发现我可以让它工作的唯一方法是将我的“PageFrame”类移动到一个新的程序集中。从记忆中我认为我什至必须提前构建该程序集,以便可以通过文件引用(而不是项目引用)来引用该程序集。

    我讨厌这个解决方案,所以我希望你能找到一个更干净的解决方案:)

    你安装了VS2008 SP1吗?我曾希望 MS 能修复这个错误。我还没有尝试删除我的解决方法来检查...

    【讨论】:

    • 我认为打个“嗨”也很合适......;-)
    【解决方案2】:

    它在同一个程序集中——是的,我也安装了 VS2008 SP1。从 vs 的角度来看,删除上述属性并不是说它可以正常工作,但从我的角度来看显然不是!

    我会试一试 - 谢谢安东尼。

    【讨论】:

    • 是的,我确实这么认为!希望一切顺利。
    • 这里的东西很好。希望你搬到亚洲的工作进展顺利。让我知道你如何解决你的设计师问题...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    相关资源
    最近更新 更多