Я новичок в 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 из программы?
именование в стиле python, предложите pascal или camelcase в c#.
@LeiYang, слишком много проблем с этим кодом, чтобы даже упоминать, просто исправьте его проблему и двигайтесь дальше, лол.
У вас почти получилось, просто переместите переменную за пределы вашего метода:
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# и кодировании в целом, поэтому я полагаю, что следует ожидать небольших ошибок.
Да, имел ввиду WPF, опять опечатка