小编use*_*759的帖子

没有为ContentControl派生类型调用WPF DataTemplateSelector.SelectTemplate

我正在尝试构建一个ContentControl派生的控件(让我们称之为MyContentControl),它将ControlTemplate由一个DataTemplateSelector-derived类型的实例设置(让我们称之为MyTemplateSelector).

当我尝试这个:

ContentControl contentControl = new ContentControl();
contentControl.ContentTemplateSelector = new MyTemplateSelector();
contentControl.Content = "Some ContentControl Content";

MyContentControl myContentControl = new MyContentControl();    
myContentControl.ContentTemplateSelector = new MyTemplateSelector();
myContentControl.Content = "Some MyControl Content";
Run Code Online (Sandbox Code Playgroud)

我希望,当我在这些控件上设置内容时,会同时调用方法MyTemplateSelector的覆盖和 .DataTemplateSelector.SelectTemplate()contentControlmyContentControl

实际上,只为contentControl调用它.我需要做什么(以及为什么!)才能使其发挥作用myContentControl

(不确定它是否相关,但目前除了覆盖元数据信息之外MyContentControl没有做任何DependencyProperties其他事情DefaultStyleKeyProperty.

编辑(将内容从其他帖子转移到原始问题):

这是一个更详细的例子:

  1. 创建MyContentControl:

    public class MyContentControl : ContentControl
    {
      static MyContentControl()
      {
        DefaultStyleKeyProperty.OverrideMetadata(typeof (MyContentControl),
                                             new FrameworkPropertyMetadata(typeof (MyContentControl)));
      }
      public MyContentControl() {}
    } …
    Run Code Online (Sandbox Code Playgroud)

wpf datatemplate datatemplateselector

6
推荐指数
1
解决办法
6831
查看次数

标签 统计

datatemplate ×1

datatemplateselector ×1

wpf ×1