禁用具有相似名称的按钮
Disable buttons with similar NAMES
我有多个名称相似的按钮。主要相似之处在于后缀 _min。
如何根据名称的一部分(而不是基于全名)禁用所有这些?
btnX_min.IsEnabled = false;
btnY_min.IsEnabled = false;
btnZ_min.IsEnabled = false;
需要成为:
for all buttons with string _min in Name, IsEnabled = false
如何完成?
我没有检查,但试试这个:
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;
}
}
根据所有这些按钮在可视化树中的位置,您可能希望使用 VisualTreeHelper class 来找到所有这些按钮。递归的FindVisualChildren方法请参考这里:
Find all controls in WPF Window by type
...试试这个:
foreach (Button button in FindVisualChildren<Button>(this).Where(x => !string.IsNullOrEmpty(x.Name) && x.Name.Contains("_btn")))
button.IsEnabled = false;
我有多个名称相似的按钮。主要相似之处在于后缀 _min。 如何根据名称的一部分(而不是基于全名)禁用所有这些?
btnX_min.IsEnabled = false;
btnY_min.IsEnabled = false;
btnZ_min.IsEnabled = false;
需要成为:
for all buttons with string _min in Name, IsEnabled = false
如何完成?
我没有检查,但试试这个:
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;
}
}
根据所有这些按钮在可视化树中的位置,您可能希望使用 VisualTreeHelper class 来找到所有这些按钮。递归的FindVisualChildren方法请参考这里:
Find all controls in WPF Window by type
...试试这个:
foreach (Button button in FindVisualChildren<Button>(this).Where(x => !string.IsNullOrEmpty(x.Name) && x.Name.Contains("_btn")))
button.IsEnabled = false;