2017-01-12 5 views
0

비슷한 이름의 버튼이 여러 개 있습니다. 주요 유사점은 접미사 _min입니다. 이 모두 비활성화 이름의 부분에 따라 (따라서 전체 이름을 기반으로하지유사한 이름을 가진 버튼을 비활성화하십시오.

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

요구가 될 수있는 방법은?

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

어떻게 달성 할

답변

1

이러한 모든 단추가 비주얼 트리에있는 위치에 따라 VisualTreeHelper 클래스를 사용하여 모든 단추를 찾을 수 있습니다.

Find all controls in WPF Window by type

...이 시도 : 여기에 재귀 FindVisualChildren 방법을 참조하십시오

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

? 수표를 찍지는 않았지만 다음을 시도해보십시오 :

 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; 
      } 
     } 
관련 문제