2017-01-12 9 views
0

Ich habe mehrere Tasten mit ähnlichen Namen. Hauptähnlichkeit ist das Suffix _min. Wie können diese alle deaktiviert auf dem Teil des Namens basieren (und somit nicht auf der Basis ganzen NamenDeaktivieren Sie Tasten mit ähnlichen Namen

btnX_min.IsEnabled = false; 
btnY_min.IsEnabled = false; 
btnZ_min.IsEnabled = false; 

Bedürfnisse werden:

for all buttons with string _min in Name, IsEnabled = false 

Wie zu erreichen

Antwort

1

Je nachdem, wo sich alle diese Schaltflächen in Ihrer Visual-Struktur befinden, möchten Sie möglicherweise die VisualTreeHelper-Klasse verwenden, um alle zu finden. Bitte beachten Sie die rekursive FindVisualChildren Methode hier:

Find all controls in WPF Window by type

... und versuchen, diese:

foreach (Button button in FindVisualChildren<Button>(this).Where(x => !string.IsNullOrEmpty(x.Name) && x.Name.Contains("_btn"))) 
    button.IsEnabled = false; 
0

? Ich habe nicht überprüft, aber versuchen Sie Folgendes:

 IEnumerable<Button> buttons = mainGrid.Children.OfType<Button>(); //GridMain is the main Layout 
     foreach (Button btn in buttons) 
     { 
      if (btn.Name.Contains("_min")) 
      { 
       btn.IsEnabled = false; 
      } 
     } 
Verwandte Themen