【发布时间】:2015-09-29 13:55:35
【问题描述】:
我有一个 DataGrid(ProductsDataGrid),这个 DataGrid 有一个 RowDetailTemplate。此 RowDetailTemplate 具有另一个 DataGrid,而这第二个 DataGrid 在其列中具有一个 DataTemplate。我想从 TextBox 的 LostFocus 事件中获取第二个 DataGrid(WarehouseDataGrid)。
<sdk:DataGrid x:Name="ProductsDataGrid">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Header="Product Name" />
<sdk:DataGridTextColumn Header="Quantity" />
<sdk:DataGridTextColumn Header="Value" />
</sdk:DataGrid.Columns>
<sdk:DataGrid.RowDetailsTemplate>
<DataTemplate>
<sdk:DataGrid x:Name="WarehouseDataGrid">
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn Header="Warehouse" />
<sdk:DataGridTemplateColumn Header="Quantity">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox x:Name="txtQuantity" LostFocus="txtQuantity_LostFocus" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
</DataTemplate>
</sdk:DataGrid.RowDetailsTemplate>
</sdk:DataGrid>
我试过了
private void txtQuantity_LostFocus(object sender, RoutedEventArgs e)
{
TextBox txt = sender as TextBox;
var a = txt.Parent; // returns DataGridCell
}
我想获取 DataGrid(WarehouseDataGrid),但我只获取 DataGridCell。我也试过 DataGridCell.Parent 但不是 DataGrid。
【问题讨论】:
-
为什么不尝试向上遍历树呢?重点穿越祖先:stackoverflow.com/questions/4428130/…
-
@SOReader 成功了。我曾尝试使用一些树助手,但我没有注意到它们是后代,在本例中是祖先。
-
很高兴听到这个消息 ;)
标签: c# wpf silverlight datagrid