C# 如何从DataTemplate派生一个新类,然后用它代替DataTemplate?

C# 如何从DataTemplate派生一个新类,然后用它代替DataTemplate?,c#,wpf,xaml,datatemplate,C#,Wpf,Xaml,Datatemplate,如何从DataTemplate派生一个新类,然后用它代替DataTemplate 例如,在C#中: 然后在XAML中: <local: DerivedDataTemplate DataType="{x:Type local:SomeType}"> <Grid> ... UI here ... </Grid> </local:DerivedDataTemplate> ... 这里的用户界面。。。 当我尝试使用派生

如何从DataTemplate派生一个新类,然后用它代替DataTemplate

例如,在C#中:

然后在XAML中:

<local: DerivedDataTemplate DataType="{x:Type local:SomeType}">
    <Grid>
        ... UI here ...
    </Grid>
</local:DerivedDataTemplate>

... 这里的用户界面。。。
当我尝试使用派生数据模板类时,会生成以下异常:

System.Windows.Markup.XamlParseException未处理 Message=“'Grid'对象无法添加到'DerivedDataTemplate'。类型为'System.Windows.Controls.Grid'的对象无法转换为类型为'System.Windows.FrameworkElementFactory'


有人知道如何处理此异常并成功使用从DataTemplate派生的类吗?

它对我很有用(尽管我没有创建本地类型)。我复制了您的代码,并在XAML声明中删除了local:和DerivedDataTemplate之间的空格。在Blend 3中,它甚至不会为我运行,我不确定Blend 2。它对我有效(尽管我没有创建本地类型)。我复制了您的代码,不得不在XAML声明中删除local:和DerivedDataTemplate之间的空格。在Blend 3中,它甚至不会为我运行,我不确定Blend 2。

出于好奇,为什么要从DataTemplate继承?我基本上希望能够有一种特殊的数据模板,可以将额外数据附加到nd使用内置的规则进行资源搜索和模板实例化。我最终以不同的方式完成了这项工作,但从DataTemplate继承会更简单。出于好奇,为什么要从DataTemplate继承?我基本上希望能够拥有一种特殊的数据模板,可以附加额外数据并使用b内置于资源搜索和模板实例化规则中。我最终以另一种方式完成了这项工作,但从DataTemplate继承会更简单。空间只是一个拼写错误,所以,我真正的代码没有那个错误。所以,当你说它对你有用时,你到底是什么意思?在下一句话中,你似乎会这么说它对你不起作用!?我正在使用Visual Studio 2008 Express。抱歉,我不清楚:你的代码在没有空格的情况下对我起作用。有了空格,它甚至不会在Blend 3中运行。空格只是一个拼写错误,所以,我真正的代码没有那个错误。那么当你说它对你起作用时,你的确切意思是什么?在下一句中你似乎在说它不适合你!?我正在使用Visual Studio 2008 Express。抱歉,我不清楚:没有空间,你的代码适合我。有了空间,它甚至不能在Blend 3中运行。
<local: DerivedDataTemplate DataType="{x:Type local:SomeType}">
    <Grid>
        ... UI here ...
    </Grid>
</local:DerivedDataTemplate>