| 

.NET C# Java Javascript Exception

4
Hallo,
ist es in Silverlight möglich, sämtliche HyperlinkButtons eines UserControls oder eines DataGrids zu selektieren und ihnen ein Event zuzuordnen? Wie kann man das denn machen? Vermutlich geht das mit dem Visual Tree Helper? Hat jemand ein Beispiel dazu?

Viele Grüsse,
shabi79
10.08.2011
shabi79 111 2
1 Antwort
3
Hallo shabi79,

mit dem VisualTreeHelper liegst Du schon richtig. Folgende generische Methode findet alle Objekte von einem bestimmten Typ in einem Wurzelobjekt (z.B. dein UserControl oder DataGrid):

public IEnumerable<T> FindAll<T>(DependencyObject rootObject) where T : class
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(rootObject); i++)
{
DependencyObject current = VisualTreeHelper.GetChild(rootObject, i);
if (current.GetType() == typeof(T))
{
yield return current as T;
}

foreach (var child in FindAll<T>(current))
{
yield return child;
}
}
}

Hier noch ein Beispiel, wie Du sie benutzen kannst:

DependencyObject myUserControl = GetUserControlFromSomewhere();
foreach (var button in FindAll<Button>(myUserControl))
{
// dem button irgendwas antun
}

Viel Erfolg
Florian
10.08.2011
ffordermaier 8,4k 3 9

Stelle deine .net-Frage jetzt!