首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用FrameworkElementFactory的目的

使用FrameworkElementFactory的目的
EN

Stack Overflow用户
提问于 2012-02-01 14:41:34
回答 1查看 5.8K关注 0票数 6

在我正在使用的一个应用程序中,我发现了以下代码-

代码语言:javascript
复制
public class MatrixCellTemplate : ColumnDataTemplate<MatrixCellContainer>
{
}

public class ColumnDataTemplate<T> : DataTemplate where T : FrameworkElement
{
    public ColumnDataTemplate()
    {
        FrameworkElementFactory factory = new FrameworkElementFactory(typeof(T));
        VisualTree = factory;
    }
}

MatrixCellTemplate用于设置自定义DataGridTemplateColumn (稍后添加到DataGrid.Columns集合)的CellTemplate,如下所示-

代码语言:javascript
复制
<DataGridTemplateColumn.CellTemplate>
    <Matrix:MatrixCellTemplate />
</DataGridTemplateColumn.CellTemplate>

我不确定使用这个FrameworkElementFactory的好处是什么,如果我直接使用MatrixCellContainer作为单元格模板,我会面临什么问题-

代码语言:javascript
复制
<DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
        <Matrix:MatrixCellContainer>
        </Matrix:MatrixCellContainer>
    </DataTemplate>
    <!--<Matrix:MatrixCellTemplate />-->
</DataGridTemplateColumn.CellTemplate>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-01 14:55:39

很难猜测这段代码背后的原因,也许是为了减少XAML,但您最好手动定义它,从功能上讲这并不重要(特别是因为它没有任何动态的东西可以证明在代码隐藏中做这件事是合理的)。

事实上,无论如何都不推荐使用FrameworkElementFactory

此类是一种以编程方式创建模板的弃用方法,这些模板是FrameworkTemplate的子类,如ControlTemplate或DataTemplate;使用此类创建模板时,并非所有模板功能都可用。以编程方式创建模板的推荐方法是使用XamlReader类的load方法从字符串或内存流加载

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9091853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档