Попытка сделать метод нажатия кнопки с использованием переменной в WPF

Я новичок в WPF и кодировании в целом, я пытаюсь создать небольшой пользовательский интерфейс для чтения и записи данных в файлы .txt. Все функции чтения работают хорошо, но теперь у меня возникли проблемы с созданием небольшого пользовательского интерфейса для отображения информации, найденной в файлах .txt.

Моя проблема больше связана с тем, как работают нажатия кнопок в WPF. Все данные хранятся в формах объекта класса Static_Data_Scheme и Dynamic_Data_Scheme внутри программы, эти классы представляют собой просто набор объектов словарей. Часть моих данных является «статической», что означает, что они будут храниться в файлах .txt, которые не изменят местоположение и поэтому могут быть загружены при запуске программы, а другая часть моих данных является «динамической», что означает, что ее можно хранить где угодно. а путь к файлу можно изменить с помощью проводника в программе. Важно отметить, что Static_Data_Scheme необходима для создания Dynamic_Data_Scheme.

Мой первоначальный способ справиться с этим, когда я сделал программу для ее проверки, заключался в том, чтобы сгенерировать обе схемы данных с одним и тем же нажатием кнопки, называемой загрузкой, но поскольку статические словари могут быть загружены прямо в начале программы, я хочу попробовать и добавить этот метод в MainWindow вместо этого и только программа генерирует Dynamic_Data_Scheme, когда я нажимаю кнопку загрузки, но я не могу найти документацию о том, как добавить аргументы к методу щелчка кнопки.

Текущий код, который работает, но мне не нравится из-за того, что метод Static_Data_Scheme.Start вызывается каждый раз при нажатии кнопки загрузки и вместо этого может загружаться только один раз при запуске программы:

    public MainWindow()
    {
        InitializeComponent();
    }

    private void Save_Loader_Click(object sender, RoutedEventArgs e)
    {
        Static_Data_Scheme static_Data_Scheme = new Static_Data_Scheme();
        static_Data_Scheme = static_Data_Scheme.Start();
        Dynamic_Data_Scheme dynamic_Data_Scheme = new Dynamic_Data_Scheme();
        Save_Parser.Parse_Save(@"file_path", static_Data_Scheme, ref dynamic_Data_Scheme);
    }

Я хочу попытаться добиться чего-то вроде этого:

    public MainWindow()
    {
        InitializeComponent();
        Static_Data_Scheme static_Data_Scheme = new Static_Data_Scheme();
        static_Data_Scheme = static_Data_Scheme.Start();
    }

    private void Save_Loader_Click(object sender, RoutedEventArgs e)
    {
        Dynamic_Data_Scheme dynamic_Data_Scheme = new Dynamic_Data_Scheme();
        Save_Parser.Parse_Save(@"file_path", static_Data_Scheme, ref dynamic_Data_Scheme);
    }

Но это не работает из-за того, что в методе Save_Parser.Parse_Save отсутствует переменная static_Data_Scheme и я не могу добавить ее в метод Save_Loader_Click.

Итак, мой вопрос: как мне сообщить моему методу ave_Loader_Click, чтобы получить static_Data_Scheme из программы?

Да, имел ввиду WPF, опять опечатка

Pyersamid 22.03.2022 16:37

именование в стиле python, предложите pascal или camelcase в c#.

Lei Yang 22.03.2022 16:39

@LeiYang, слишком много проблем с этим кодом, чтобы даже упоминать, просто исправьте его проблему и двигайтесь дальше, лол.

Blindy 22.03.2022 16:44
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
36
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

У вас почти получилось, просто переместите переменную за пределы вашего метода:

    Static_Data_Scheme static_Data_Scheme = new();

    public MainWindow()
    {
        InitializeComponent();
        /* static_Data_Scheme = ???? */static_Data_Scheme.Start();
    }

    private void Save_Loader_Click(object sender, RoutedEventArgs e)
    {
        var Data_Scheme = new Dynamic_Data_Scheme();
        Save_Parser.Parse_Save(@"file_path", static_Data_Scheme, ref dynamic_Data_Scheme);
    }

Спасибо, новичок в C# и кодировании в целом, поэтому я полагаю, что следует ожидать небольших ошибок.

Pyersamid 22.03.2022 16:42

Другие вопросы по теме