从 Silverlight Toolkit DataForm 上的 DataFields 的 DescriptionViewer 部分回收空间

发布于 2024-08-13 08:22:53 字数 962 浏览 5 评论 0原文

DataFieldDescriptionViewer 部分用于将 System.ComponentModel 的 Description 属性显示为生成的表单中的工具提示。我不想使用此功能,尽管我可以通过使用样式将 DescriptionViewerVisibility 设置为 Collapsed 或通过设置DescriptionViewerStyle 为 null,如下所示,DataField 布局中仍然为此元素保留了空间。

<Style x:Key="DataFieldStyle1" TargetType="dataFormToolkit:DataField">
    <Setter Property="DescriptionViewerVisibility" Value="Collapsed"/>
    <Setter Property="DescriptionViewerStyle" Value="{x:Null}" />
</Style>

在我的场景中,这个空间是浪费,我想摆脱它。我希望此布局由 DataField.Template 属性公开,但是当我使用 Blend 编辑默认模板的副本时,布局不存在。

我在 WCF RIA 服务中使用 Silverlight Toolkit 2009 年 10 月版本中的 System.Windows.Controls.Data.DataForm.Toolkit, Version=2.0.5.0 Beta 业务应用程序 Silverlight 3 项目。我使用的是 Visual Studio 2008 SP1。我知道有 2009 年 11 月的版本,但我在发行说明中看不到任何有关此更改的提及。

The DescriptionViewer part of the DataField is used to display the Description property of the System.ComponentModel.DisplayAttribute as a ToolTip in the generated form. I don't want to use this capability and although I can make sure the UI element is not visible by using a style to set either the DescriptionViewerVisibility to Collapsed or by setting the DescriptionViewerStyle to be null as shown below, there is still space reserved in the DataField layout for this element.

<Style x:Key="DataFieldStyle1" TargetType="dataFormToolkit:DataField">
    <Setter Property="DescriptionViewerVisibility" Value="Collapsed"/>
    <Setter Property="DescriptionViewerStyle" Value="{x:Null}" />
</Style>

This space is as waste in my scenario and I want to get rid of it. I would expect this layout to be exposed by the DataField.Template property but when I use Blend to edit a copy of the default template the layout is not there.

I'm using the System.Windows.Controls.Data.DataForm.Toolkit, Version=2.0.5.0 from the October 2009 release of the Silverlight Toolkit within a WCF RIA Services Beta Business Application Silverlight 3 project. I'm using Visual Studio 2008 SP1. I know there is a November 2009 release but I can't see any mention of this changing in the release notes.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(2

一城柳絮吹成雪 2024-08-20 08:22:53

另一种解决方案是使用 DataForm Label 和控件来显示您的字段。

您可以使用此代码,而不是像这样使用 DataField 并最终为 DescriptionViewer 留出空间,

<dataControls:DataField>
    <TextBox Text="{Binding FirstName, Mode=TwoWay}" />
</dataControls:DataField>

而不会拥有 DescriptionViewer

<dataInput:Label Target="{Binding ElementName=tbFirstName}" />
<TextBox x:Name="tbFirstName" Text="{Binding FirstName, Mode=TwoWay}" />

使用此解决方案,您将失去 DataForm 附带的生成布局,但您可以使用简单的方法轻松完成网格

An alternative solution is to use DataForm Label and a control to display your field.

Instead of using a DataField like this and eventually having space for DescriptionViewer

<dataControls:DataField>
    <TextBox Text="{Binding FirstName, Mode=TwoWay}" />
</dataControls:DataField>

You can use this code, and you will not have the DescriptionViewer

<dataInput:Label Target="{Binding ElementName=tbFirstName}" />
<TextBox x:Name="tbFirstName" Text="{Binding FirstName, Mode=TwoWay}" />

With this solution, you will loose the generated layout that come with the DataForm but you can do it easily with a simple Grid

电影里的梦 2024-08-20 08:22:53

使用 Reflector,我可以看到 DataField.OnApplyTemplate 方法调用一个名为 GenerateUI 的私有方法,该方法使用常规代码为 DescriptionViewer 创建一个带有列的网格,我可以如果不进行一些非常低级别的 .NET clr 类型的 hack,我看不到一种方法来防止这种情况,这是不合适的。我在这里错过了什么吗?

我开始得出这样的结论:如果您想从所谓的生产力提升中受益,您要么需要非常接近这些 Silverlight Toolkit 控件的默认行为。目前看来,除了琐碎的定制之外,任何其他事情似乎都是一个不完整的故事。

Using Reflector I can see that the DataField.OnApplyTemplate method calls a private method called GenerateUI, which uses conventional code to create a Grid with a Column for the DescriptionViewer, and I can't see a way to prevent this, without doing some very low level .NET clr kind of hack which would be inappropriate. Am I missing something here?

I'm starting to come to the conclusion that you either need to stick very close to the default behaviour of these Silverlight Toolkit controls if you want to benefit from the supposed productivity gains. Anything more that pretty trivial customisation seems to be an incomplete story at the moment.

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