问题标签 [rowdetailstemplate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
746 浏览

silverlight - 如何将 Silverlight RowDetailsTemplate 定位在其相应行的上方?

RowDetailsTemplate当您在 Silverlight 网格中创建一个时,您可以为行详细信息指定一个模板,该模板在被选中时直接显示在行下方。

我的一个数据网格的细节在每一行之前看起来会好很多,而不是在它之后。

我尝试在 Blend 中修改模板,但当我到达模板的这一部分时,最终卡住了:

似乎没有关联的模板,DataGridRowsPresenter因此我似乎无法找到如何将详细信息移动到行上方。

这可能吗?

0 投票
1 回答
409 浏览

wpf - 升级到 .NET 4.0 后 WPF DataGrid 中的错误

情况如下:
一个DataGrid 有一个RowDetailsTemplate,其中包含另一个DataGrid(子网格)。如果添加包含 EventHandler 的 DataGridTemplateColumn,NullReferenceException则 PresentationFramework.dll 会抛出 a。

此问题仅存在于 .NET 4.0中。如果项目以 .NET 3.5 为目标(并将 WPFToolkit 用于 DataGrid 组件),则一切正常。

我附上了一个重现此错误的小示例项目。项目中有一个 README 文件,它再次解释了问题并显示了异常的堆栈跟踪。(示例项目可以在这里找到)

重现步骤:
1. 按原样运行示例项目。
2. 尝试网格第一行中的“删除我”链接,确认它显示了一条消息。
3. 单击第一列中的“显示”单元格,并确认它显示了一个包含一个项目的子网格。
4. 尝试子网格中的“删除我”链接,确认它什么都不做。(它没有在代码中连接)。
5. 关闭窗口并转到 MainWindow.xaml
6. 在 MainWindow.xaml 第 36 行连接 Hyperlink.Click 事件:将 Click="HyperlinkClick" 添加到 Hyperlink 标记。
7. 再次运行项目,点击第一列的“SHOW”:抛出 NullReferenceException!

这是从https://connect.microsoft.com/VisualStudio/feedback/details/603333/wpf-datagrid-rowdetails-add-2nd-datagrid-to-rowdetailstemplate-with-eventhandlers#details交叉发布的,但这是一个阻塞问题为了我。

所以问题是:为什么会这样?我认为这是 PresentationFramework 代码中的一个错误,但我不能 100% 确定。我该怎么做才能使 EventHandler 按预期工作?

我通过允许用户按下删除键找到了一个临时解决方法,但这会破坏我们应用程序的行为。
有没有人可以复制和评论这个问题?

0 投票
1 回答
2194 浏览

datagrid - 在 WPF 中,如何在 DataGrid.RowDetailsTemplate 中进行绑定?

我有一个绑定到自定义类的 ObservableCollection 的 DataGrid。集合是 ViewModel 中的一个属性,网格可以正常工作,包括对集合的更改。

我想使用 RowDetailsTemplate 在 StackPannel 中显示两个额外的集合,如下所示:

ClusterIndexColumns 和 IndexColumns 是内部网格的绑定源,也是 ViewModel 中的集合。

问题是,当我显示行详细信息时,数据网格是空的,即根本没有加载,没有列或行。

为了了解发生了什么,我用标签替换了内部数据网格:

并且没有指定绑定源 - {Binding}

标签现在显示作为外部网格源的集合中的自定义类的名称。

所以不知何故,我需要导航回 ViewModel 作为内部网格的数据上下文。

但是,如何,祈祷告诉?

0 投票
3 回答
3149 浏览

c# - C# / WPF - DataGrid - 将 RowDetails 中的 TextBox 的宽度绑定到包含 DataGrid 的宽度

我的问题与此类似;

除了我希望行详细信息永远不会超过它所跨越的列的宽度。

我试过AreRowDetailsFrozen了,这没有效果。我也尝试绑定到父网格的实际宽度(OneWay),但这会导致宽度超过我的两个屏幕的宽度。

这是我目前的尝试(简化);

这导致以下结果;

将 TextBox 的宽度绑定到任何父容器(Grid、DataGrid、ItemsPresenter):

结果是:

这很令人沮丧,我只是希望行详细信息不要改变 DataGrid 的宽度,有这么多要求吗?:)

0 投票
1 回答
1968 浏览

wpf - 我可以将数据绑定到 DataGridRow.DetailsVisibility 吗?

我有一个带有 RowDetailsTemplate 的 WPF 数据网格控件。我希望能够在绑定到该行的对象上设置一个属性,以设置该特定行是否应显示详细信息。

因此,例如,如果我有一个如下所示的基本布局,并且“Detail”对象有一个名为“Expanded”的布尔属性,我可以在某处绑定该属性以在值更改时显示其行的详细信息吗?

0 投票
0 回答
449 浏览

wpf - 需要使用 RowDetailsTemplate--mvvm 在数据网格中选择或突出显示相似的行

我有具有行详细信息的数据网格。我的行可以重复。我想选择所有相似的行。我怎样才能做到这一点。我正在使用 mvvm 模式。我将 selectedItem 绑定到我的视图模型中的相同属性,但它不起作用。

这是 xaml 代码:

如您所见,我将它绑定到 VM 级别的“SelectedAccessory”并且它可以工作。它与屏幕中的其他控件同步,但不与数据网格中的其他行同步。当我单击其中一个时,我想选择所有“Overhead Door Opening12”行。

提前致谢。

在此处输入图像描述

0 投票
1 回答
240 浏览

wpf - WPF4 DataGrid 删除 RowDetailsTemplate 的 DataGrid 中的行

我有一个 WPF4 DataGrid 控件,它的 RowDetailsTemplate 中包含另一个 DataGrid 控件。我在 DataGrid 控件上添加了一个 PreviewKeyDown 事件,并监视它们是键盘操作。如果按键盘上的 Delete 键,我将删除 DataGrid 控件中的 SelectedItems。我的问题是当我想删除 RowDetailsTemplate DataGrid 控件中的一行时。路由事件,Parent DataGrid 中定义 RowDetailsTemplate 的行也被删除。我知道这是因为 RoutedEvent.RoutingStrategy 设置。但是我怎么能只删除 RowDetailsTemplate DataGrid 中的行呢?谢谢。

0 投票
2 回答
1166 浏览

wpf - WPF DataGrid 与 RowDetailsTemplate 中的 DataGrid 没有获得垂直滚动条

我有一个带有 RowDetailsTemplate 的 DataGrid,其中包含一个 DataGrid。父网格放置在它自己的行中。该行定义为

通常这意味着该行将采用可用高度的 REST 并初始化它。但是,如果 DataGrid 对于屏幕上剩余的空间来说太大,则 DataGird 的按钮会显示在“屏幕下方”而不是滚动条。

我试图通过为父网格定义 MaxHeight=400 来解决它,但即使如此,父网格的长度也是无限的,并且仍然会变得很长,以至于它的底部部分是不可见的。

有什么想法该怎么做吗?

0 投票
1 回答
5844 浏览

wpf - 为什么 Width="*" 不适用于位于 RowDetailsTemplate 中的 DataGrid 中的列

如果我使用“*”设置 DataGrid(位于 RowDetailesTemplate 中)列的宽度 - 列缩放不起作用

在此处输入图像描述

但是如果我用 Grid 替换 DataGrid 并使用“*”缩放设置它的列宽

在此处输入图像描述

如何修复 DataGrid 缩放?

解决方案:

0 投票
1 回答
1596 浏览

c# - 无法在另一个 Datagrid 的 RowDetailsTemplate 中跟踪 DataGrid 的 SelectedItem

我今天早些时候遇到了这个问题,无法找到解决方案。当我在. SelectedItem_ _ _ (很难解释清楚。)DataGridRowDetailsTemplateDataGridDataGridRowDetailsTemplate

绑定对于列表都正常工作。MainViewModel 包含一个对象,这就是外部绑定 ObservableCollection的对象。MyItemDataGrid

MyItem对象包含一个ObservableCollection对象MyItem2,它们被正确绑定到内部DataGrid

MyItem对象还有一个名为的属性SelectedItem2,它应该绑定到SelectedItem内部DataGrid但永远不会被设置。

顺便说一句:我正在使用 VS2012 和 .Net 4.5。

例子:

MainWindow.xaml

MainWindowViewModel

MyItems ViewModels

ViewModelBase

任何帮助,将不胜感激。

谢谢!