DataGrid Komutu için bir olay işleyicisinde, DataGridCell'i ExecutedRoutedEventArgs uygulamasında alırım. Ancak, onun ilişkili DataGrid ve DataGridRow nasıl elde edeceğini anlayamadım. Yardımınız çok takdir ediliyor.WGF'de DataGridCell'in sahibi DataGrid ve DataGridRow nasıl bulunur?
14
A
cevap
12
Muhtemelen bir {RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}
yoluyla size "üst ızgara/satır" alabilirsiniz bağlayıcı RelativeSource
çeşit ayarlamak istiyor ancak soru beni düşündürdü ...
Yapabilirsin:
Kullanım Yansıma:
:var gridCell = ....;
var parentRow = gridCell
.GetType()
.GetProperty("RowOwner",
BindingFlags.NonPublic | BindingFlags.Instance)
.GetValue(null) as DataGridRow;
VisualTreeHelper
kullanın Her iki gerekiyorsa
<MouseBinding
MouseAction="LeftDoubleClick"
Command="cmd:CustomCommands.Open"
CommandParameter="{Binding ElementName=MyDataGrid}}" />
, bir Tuple
bunları birleştiren çok değer dönüştürücü ekleyebilirsiniz: Yapabileceğin
0
bir yolu CommandParameter olarak ihtiyaç duyulan elemanların birini veya her ikisini geçerek olduğunu ... senin kod-arkasında erişebildiğinizi e.Parameter
İşte
2
ben tam bir cevap olduğunu düşünüyorum budur kullanarak Sonra
(veya bir nesne [] olarak bırakabilirsiniz)
private void Copy(object sender, ExecutedRoutedEventArgs e)
{
DataGrid grid = GetParent<DataGrid>(e.OriginalSource as DependencyObject);
DataGridRow row = GetParent<DataGridRow>(e.OriginalSource as DependencyObject);
}
private T GetParent<T>(DependencyObject d) where T:class
{
while (d != null && !(d is T))
{
d = VisualTreeHelper.GetParent(d);
}
return d as T;
}
İlgili konular
- 1. DataGrid bir sütun içeriyorsa nasıl bulunur?
- 2. Datagrid satırları al
- 3. Tüm DataGrid satır ve hücre sınırlarının kaldırılması
- 4. WPF DataGrid FareVeri VermeGridRow
- 5. WPF DataGrid stili-Silverlight DataGrid?
- 6. DataGrid sütun başlığı nasıl sürüklenir ve bırakılır?
- 7. DataGrid, TextBox - ciltleme ve anlık güncellemeler
- 8. DataGrid
- 9. DataGrid nasıl şeffaf yapılır?
- 10. PostgreSql veritabanının sahibi nasıl değiştirilir?
- 11. Styling DataGrid Selected App in App.Config
- 12. ASP.NET datagrid nasıl temizlenir?
- 13. DataGrid Şablon örneği, xceed Datagrid Şablonu ile
- 14. Bir WpF datagrid sütununa SelectAll CheckBox ekleyin?
- 15. Datagrid: Footer
- 16. WPF DataGrid AutoSize Sayı
- 17. WPF Datagrid Sütunu nasıl odaklanır?
- 18. Dizinin minimum ve maksimum öğesi nasıl bulunur?
- 19. UserTransaction ve EntityManager nasıl etkileşimde bulunur?
- 20. , bir işleç sahibi var ==
- 21. C++ Lambda işleç sahibi()
- 22. Android Ev sahibi
- 23. MvvmLight EventToCommand ve WPFToolkit DataGrid çift tıklatın
- 24. Pencere Sahibi, tanıtıcısı kullanılarak nasıl değiştirilir
- 25. WPF DataGrid
- 26. Codebehind öğesindeki ITemplate ve DataGrid Sütunu
- 27. Android'de DataGrid ekranı nasıl oluşturulur?
- 28. datagrid satır
- 29. neden Profil sahibi
- 30. Dosyanın Sahibi Simgesi