如何将继承的控件添加到 WPF 中的数据模板?

发布于 2024-08-21 01:00:08 字数 1037 浏览 3 评论 0原文

我需要一个控件的额外依赖属性,所以我重写它。 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笑脸一如从前 2024-08-28 01:00:08

好吧,想通了。这似乎是 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文