如何将继承的控件添加到 WPF 中的数据模板?
我需要一个控件的额外依赖属性,所以我重写它。 IE:
namespace Custom_TextBlock_Sample
{
public class CustomLabel: Label
{
}
}
但我似乎无法将其添加到 DataTemplate 中。以下代码将无法构建:
... xmlns:Custom_TextBlock_Sample="clr-namespace:Custom_TextBlock_Sample" ...
<DataTemplate x:Key="Test">
<Grid>
<Custom_TextBlock_Sample:CustomLabel></Custom_TextBlock_Sample:CustomLabel>
</Grid>
</DataTemplate>
但是,在其他任何地方插入我的重写控件(比如不在数据模板中)..并且编译工作没有问题。
以下作品有效:(我的控件未嵌套在日期模板中)。
<Grid>
<Custom_TextBlock_Sample:CustomLabel></Custom_TextBlock_Sample:CustomLabel>
</Grid>
另外,在数据模板中使用常规标签也可以:
<DataTemplate x:Key="Test">
<Grid>
<Label/>
</Grid>
</DataTemplate>
关于问题可能是什么的任何想法吗?我可以不向这样的庄园中的数据模板添加重写的控件吗?这是 Visual Studio 2007 中的错误吗?
请注意,由于我对控件的预期更改很小,因此我只想覆盖“Label”而不是将其包装在 UserControl 中。
谢谢
I need to an extra dependancy property to a control, so I'm overriding it. I.E.:
namespace Custom_TextBlock_Sample
{
public class CustomLabel: Label
{
}
}
But I seem to be unable to add it to a DataTemplate. The following code will fail to build:
... xmlns:Custom_TextBlock_Sample="clr-namespace:Custom_TextBlock_Sample" ...
<DataTemplate x:Key="Test">
<Grid>
<Custom_TextBlock_Sample:CustomLabel></Custom_TextBlock_Sample:CustomLabel>
</Grid>
</DataTemplate>
However inserting my overriden control anywhere else, (say not in the datatemplate) .. and compilation works no problem.
The following works: (My control is not nested in a date template).
<Grid>
<Custom_TextBlock_Sample:CustomLabel></Custom_TextBlock_Sample:CustomLabel>
</Grid>
Also using a regular label in the Datatemplate also works:
<DataTemplate x:Key="Test">
<Grid>
<Label/>
</Grid>
</DataTemplate>
Any ideas on what the issue might be ? Can I simply not add overridden controls to datatemplates in such a manor ? Is this a bug in Visual Studio 2007?
Note that since my intended changed to the control will be small, I simply want to override "Label" instead of wrapping it in a UserControl.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,想通了。这似乎是 Visual Studio 的命名空间错误。当我从头开始一个新项目时,问题自行解决了,这次项目名称中没有空格,命名空间名称中没有“_”。
Ok, figured it out. This seems to be a namespace bug with Visual Studio. The problem fixed itself, when I started a new project from scratch, this time with no spaces in the project name and no "_" in namespaces names.