WPF在代码中创建DataTemplate时候的异常

今天写段程序用到了在代码中手动创建DataTemplate,

var factory = new FrameworkElementFactory(typeof(OperationColumn));
    returnnewDataTemplate() { VisualTree = factory };

运行的时候出现如下异常: FrameworkElementFactory 必须位于此操作的密封模板中。

在 System.Windows.FrameworkElementFactory.InstantiateUnoptimizedTree()

System.Windows.FrameworkTemplate.LoadContent()

  

平时我也是这么些的,一直都是好好的,不知道这次是不是用了一个第三方控件的缘故。网上搜了一下,后在StackOverFlow上找到了解决方案: FrameworkElementFactory
must be in a sealed template for this operation

具体的做法是:创建了DataTemplate后,调用Seal函数锁定模板。

var factory = newFrameworkElementFactory(typeof(OperationColumn));
    var dataTemplate = newDataTemplate() { VisualTree = factory
};
    dataTemplate.Seal();
    return
dataTemplate;

WPF在代码中创建DataTemplate时候的异常,码迷,mamicode.com

时间: 2024-12-28 21:40:37

WPF在代码中创建DataTemplate时候的异常的相关文章

本地C代码中创建Java对象

创建Java域的对象就是创建Java类的实例,再调用Java类的构造方法. 以Bitmap的构建为例,Bitmap中并没有Java对象创建的代码及外部能访问的构造方法,所以它的实例化必然是在JNI的c中实现的. BitmapFactory.java中提供了得到Bitmap的方法,时序简化为: BitmapFactory.java ->BitmapFactory.cpp -> GraphicsJNI::createBitmap()  [graphics.cpp] GraphicsJNI::cre

unity 在代码中创建spine动画组件

项目中用到了spine动画,使用Assetbundle打包后,在手机上运行会出现丢材质的情况.如果不进行打包,直接放到Resources目录下是可以正常加载的,但是,这样包就会很大,而且也不能进行热更新.进过测试,发现在代码中创建spine组件是可以解决这个问题,于是就有了下面的方案. 我们先说方案,再说问题. 方案: spine动画制作人员提供的spine动画三个文件分别是.json,.atlas,.png,把这三个文件放到unity(我用的unity版本是5.3.4f1)中,会自动生成atl

Android OpenGL ES(六)----进入三维在代码中创建投影矩阵和旋转矩阵

我们现在准备好在代码中添加透视投影了.Android的Matrix类为它准备了两个方法------frustumM()和perspectiveM().不幸的是,frustumM()的个缺陷,它会影响某些类型的投影,而perspectiveM()只是从Android的ICS版本开始才被引入,在早期的Android版本里并没有这个方法.我们可以简单地支持ICS及其以上的版本,但是这样会丢掉很大一部分市场,一些用户依然运行早期的Android版本. 作为替代,我们可以创建我们自己的方法来实现投影矩阵.

代码中创建新终端 以及的把新终端的输出打印到文件,用于调式。

转自:http://blog.chinaunix.net/uid-20682147-id-4981769.html cat term.c #include<stdio.h> #include<stdbool.h> #include<stdlib.h> #include<string.h> #include<sys/prctl.h> #include<unistd.h> #include<utmp.h> #include&l

在代码中创建布局的方法

第一种imageView = new ImageView(this);FrameLayout decorView = (FrameLayout) getWindow().getDecorView();decorView.addView(imageView);FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) imageView.getLayoutParams();layoutParams.width = DubDi

iOS 自动布局扩展应用:代码中动态调整布局常量

一.设计需求 iOS Storyboard 自动布局技术,是iOS 6才出来的新技术,相当于多屏幕分辩率下自适应的技术. 但是一些复杂情况还是难处理. 比如有一个界面需求,进度条上显示标签,这个需求不难,难的是显要在显示表格框内,在各种机型显示正常. 最初设定是垂直居中向上偏15个像素 这是iPhone 4S 显示效果,下面与滑块还有错位 但是在iPhone 6下显示,下面有错位,但是上面留空太多 但如果把偏移量设为21.则出现另一种情况. 大屏幕的手机显示完美. 但是iPhone 4S下就错位

[翻译] DTCoreText 从HTML文档中创建富文本

DTCoreText 从HTML文档中创建富文本 https://github.com/Cocoanetics/DTCoreText 注意哦亲,DTRichTextEditor 这个组件是收费的,不贵,才650美元而已^_^. DTCoreText This project aims to duplicate the methods present on Mac OSX which allow creation of NSAttributedString from HTML code on iO

Sql语句在SqlServer中创建数据库、表格并添加约束

通过Sql语句来创建数据库与架构 创建数据库 数据库的创建首先是要引用主数据库的,需要在master数据库的环境下进行创建.大致的语法如下: 1 -- 使用master数据库 2 use master 3 -- 创建数据库 4 create datebase [架构名.]数据库名 5 on [primary]--主文件数据描述 6 ( 7 name = '数据库逻辑名', --一般是数据库的名称 8 filename = '数据文件的名字',--全路径 9 size = 12mb, --数据文件

oracle存储过程创建语法及常见异常

oracle存储过程创建语法及常见异常: oracle存储过程语法: CREATE[ORReplace]PROCEDURE[schema.]procedure_name [(argument[{IN|OUT|INOUT}]datatype, ... argument[{IN|OUT|INOUT}]datatype)] {IS|AS} [descriptionpart说明部分] BEGIN SQLSTATEMENT语句序列 [EXCEPTION例外处理] END[procedureName过程名]