Мне нужен обобщенный метод, получающий коллекцию Control'ов из gridMain по критерию, переданному делегатом, опирающимся на их Tag (целое число). Задачу я решил вот так (все работает)
private int GetTag<T>(T control) where T : Control
{
if (!(control is T)) return -1;
int rez;
return int.TryParse((control as T).Tag.ToString(), out rez) ? rez : -1;
}
private List<T> GetControls<T>(T type, TagCriteria cri) where T : Control
{
List<T> rezult = new List<T>();
foreach (var control in gridMain.Children)
if (control is T && cri(GetTag(control as T))) rezult.Add((T)control);
return rezult;
}
Но мне не нравится передавать параметр (например, null as ComboBox в строчке ниже) для определения типа.
GetControls(null as ComboBox, x => x > 0).ForEach(x => x.IsEnabled = false);
Вопрос: Можно ли как-нибудь изящнее? Буду благодарен за комментарии к моему коду. Спасибо.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Шейдеры только начинаю изучатьЗадача такая: у объекта есть полностью прозрачные и полностью непрозрачные части
Программно добавляю картинку, но как устанавливать ей оригинальный размер как у источника, а не auto или от себя ?
Время от времени ловлю OutOfMemoryException при вызове этого метода: BitmapClone (Rectangle, PixelFormat), хотя памяти у меня много