Дублирование кода WPF

146
29 октября 2019, 06:30

Подскажите, как избежать дублирования кода на формах, если логика заполнения и обработки данных типовая, отличаются только передаваемые типы? Например, обработка двойного клика в DataGrid типовая, отличие в самом элементе с которым работаем (Задумка: можно передавать сам объект в метод) и тип данных, которые обрабатываем:

    private void DoubleClickRow(object sender, RoutedEventArgs e)
    {
        if (dgStagesView.SelectedItem != null && dgStagesView.SelectedItem is View_BalanceStage)//Тут соответственно указываем элемент на форме
        {
            Win_DetailsOfStage stagesForm = new Win_DetailsOfStage((View_BalanceStage)dgStagesView.SelectedItem); //Тут изменяется тип формы, с которой мы будем работать
            if (stagesForm != null && stagesForm.ShowDialog() == true)
            {
                FillDataGrid();//обновление данных 
            }
        }
    }

и

    private void DoubleClickRow(object sender, RoutedEventArgs e)
    {
        if (dgExecutorsView.SelectedItem != null && dgExecutorsView.SelectedItem is View_ExecutorsOfStages)
        {
            Win_Executors executorsForm = new Win_Executors((View_ExecutorsOfStages)dgExecutorsView.SelectedItem);
            if (executorsForm != null && executorsForm.ShowDialog() == true)
            {
                FillDataGrid();
            }
        }
    }

Также есть аналогичные/схожие куски кода по обработке нажатий на кнопки/элементы. Буду очень признательна если поможете разобраться как оптимизировать код, например, подскажите название паттерна или пример как подойти к реализации MVVM.

READ ALSO
Процесс не может получить доступ к файлу, так как файл используется другим процессом

Процесс не может получить доступ к файлу, так как файл используется другим процессом

Все было бы просто и понятно, если бы нужно было "просто" применить using либо "просто" вызвать fileClose() или что то в этом духе

141
Как автоматически присвоить полю его же имя?

Как автоматически присвоить полю его же имя?

К name2 автоматически присвоить значение его же имени, без указания имени в строке

109
Сохранение данных textbox и Image

Сохранение данных textbox и Image

У меня есть 3 textbox(c внесенными данными),1 картинка которая загружается пользователем,1 Listbox в котором нужно выбрать вариант ответаКак и куда...

126