我有一個使用數據網格在其模板這樣一個ItemsControl:從綁定的項目獲取DataGrid中的ItemsControl
<ItemsControl Name="icDists" ItemsSource="{Binding Dists}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<DataGrid ItemsSource="{Binding}" Width="150" Margin="5" AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Key" Binding="{Binding Key}" Width="1*" />
<DataGridTextColumn Header="Value" Binding="{Binding Value}" Width="1*" />
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
ItemsControl的被綁定到我的模型Dists
屬性,它看起來像這樣:
ObservableCollection<Dictionary<string, string>> Dists;
如何獲取與Dists屬性中的項目對應的DataGrid?我試過這個代碼,這給了我一個ContentPresenter,但我不知道如何獲得它的DataGrid中:
var d = Dists[i];
var uiElement = (UIElement)icDistribucion.ItemContainerGenerator.ContainerFromItem(d);
我試着走了VisualHelper.GetParent
樹,但找不到數據網格。
爲什麼你需要獲取datagrid?如果你做了適當的綁定和通知,你需要的所有數據就在Dists集合中。 – 2014-09-26 01:38:56
我需要手動調用DataGrid上的事件。 – user3557327 2014-09-29 15:49:47