C# 如何将继承的控件添加到WPF中的datatemplate?
我需要为控件添加一个额外的dependency属性,所以我要覆盖它。即:C# 如何将继承的控件添加到WPF中的datatemplate?,c#,wpf,datatemplate,C#,Wpf,Datatemplate,我需要为控件添加一个额外的dependency属性,所以我要覆盖它。即: namespace Custom_TextBlock_Sample { public class CustomLabel: Label { } } 但我似乎无法将其添加到数据模板中。以下代码将无法生成: ... xmlns:Custom_TextBlock_Sample="clr-namespace:Custom_TextBlock_Sample" ... <DataTemplate x:K
namespace Custom_TextBlock_Sample
{
public class CustomLabel: Label
{
}
}
但我似乎无法将其添加到数据模板中。以下代码将无法生成:
... xmlns:Custom_TextBlock_Sample="clr-namespace:Custom_TextBlock_Sample" ...
<DataTemplate x:Key="Test">
<Grid>
<Custom_TextBlock_Sample:CustomLabel></Custom_TextBlock_Sample:CustomLabel>
</Grid>
</DataTemplate>
。。。xmlns:Custom_TextBlock_Sample=“clr命名空间:Custom_TextBlock_Sample”。。。
但是,在其他任何地方插入我的重写控件(比如不在datatemplate中)。。编译工作没有问题
以下工作:(我的控件未嵌套在日期模板中)
在Datatemplate中使用常规标签也可以:
<DataTemplate x:Key="Test">
<Grid>
<Label/>
</Grid>
</DataTemplate>
关于这个问题有什么想法吗?在这样一个庄园中,我能简单地不向datatemplates添加重写控件吗?这是VisualStudio2007中的一个bug吗
请注意,由于我打算对控件进行的更改很小,因此我只想覆盖“Label”,而不是将其包装在UserControl中
谢谢好的,想好了。这似乎是VisualStudio的名称空间错误。当我从头开始一个新项目时,这个问题已经解决了。这次,项目名称中没有空格,名称空间名称中没有“\u1”。这对我来说很好,您在这里输入的代码看起来没有问题。你得到的编译错误是什么?一个可能的问题可能是您从错误的标签类继承。检查CustomLabel文件中的using语句(例如,System.Reflection.Emit中的标签是密封的,因此无法编译)。
<DataTemplate x:Key="Test">
<Grid>
<Label/>
</Grid>
</DataTemplate>