Ich habe eine Funktion, die die Datenbank für Strings querys (die x sind: Name = "" in meiner Anwendung)Verweis auf ein Element in einem Raster in wpf
Nach dem Code:
Try
For Each s In output
Dim nameOfControl = s
Dim window = Windows.Application.Current.Windows(0)
Dim visuals = GetVisualChildren(Of FrameworkElement)(window)
Dim child = visuals.OfType(Of FrameworkElement)().FirstOrDefault(Function(x) x.Name = nameOfControl)
child.Visibility = Visibility.Collapsed
Next
Public Iterator Function GetVisualChildren(Of T As Visual)(parent As DependencyObject) As IEnumerable(Of T)
Dim child As T = Nothing
Dim numVisuals As Integer = VisualTreeHelper.GetChildrenCount(parent)
For i As Integer = 0 To numVisuals - 1
Dim v As Visual = DirectCast(VisualTreeHelper.GetChild(parent, i), Visual)
child = TryCast(v, T)
If v IsNot Nothing Then
For Each item In GetVisualChildren(Of T)(v)
Yield item
Next
End If
If child IsNot Nothing Then
Yield child
End If
Next
End Function
Ich kann nicht herausfinden, warum dies nicht für alle Elemente funktioniert, dh. Mein Fenster besteht aus einer TabControl
die ich anrufen kann mit "x name", das gleiche gilt für toolBar
, alles funktioniert auch mit TabItem's
gut, aber ich kann nicht auf <Button x:Name="buttonRefresh"
beziehen, die in einem der TabItem's
Grids ist.
erhalte ich einen Fehler Nullreferenceexception auf der Linie unten:
child.Visibility = Visibility.Collapsed
Wenn ich einen Haltepunkt an dieser Zeile einzufügen bekomme ich diese {System.Windows.Controls.TabItem Header:FirstTab Content:}
für child
also bin ich asuming ich muss etwas über dieses Stück Code ändern
Dim Fenster = Windows.Application.Current.Windows (0)
Also, kann ich in diesem Fall etwas tun? – Thomas
Siehe meine Updates. Viel Glück. –
Es tut mir leid, die Übereinstimmung gibt einen Wert für alle Registerkarten {System.Windows.Controls.TabItem Header: Tab Zwei Inhalte:} '** Tab Zwei oder Tab Drei **. Aber für nameOfControl "refreshButton" bekomme ich nichts in ** match ** – Thomas