Пример #1
0
        private void Button_DeleteWidget_Click(object sender, RoutedEventArgs e)
        {
            if (ListBoxFiles.SelectedItem != null)
            {
                string fileName     = ((CustomWidget)ListBoxFiles.SelectedItem).FileName;
                string filePathInfo = ((CustomWidget)ListBoxFiles.SelectedItem).FilePathInfo;

                List <FileItem> fileItemsList = JsonWorker.DeserializationFileItemsJson(JsonWorker.JsonFileItems);
                FileItem        fileItem      = fileItemsList.First(x => x.Name == fileName && x.Path == filePathInfo);
                fileItemsList.Remove(fileItem);

                JsonWorker.JsonFileItems = JsonWorker.SerializationFileItemsJson(fileItemsList);

                File.WriteAllText(JsonWorker.JsonFilePath, JsonWorker.JsonFileItems);

                ListBoxFiles.Items.Remove(ListBoxFiles.SelectedItem);
            }
        }
Пример #2
0
        private void Button_CreateNewWidget_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog fileDialog = new OpenFileDialog()
            {
                Filter = "Текстовые файлы (*.txt)|*.txt",
            };

            if (fileDialog.ShowDialog() == true)
            {
                FileInfo fileInfo = new FileInfo(fileDialog.FileName);

                FileItem fileItem = new FileItem()
                {
                    Name = fileInfo.Name,
                    Path = fileInfo.DirectoryName
                };

                List <FileItem> fileItemsList = JsonWorker.DeserializationFileItemsJson(JsonWorker.JsonFileItems);
                fileItemsList.Add(fileItem);

                JsonWorker.JsonFileItems = JsonWorker.SerializationFileItemsJson(fileItemsList);

                using (FileStream stream = new FileStream(JsonWorker.JsonFilePath, FileMode.OpenOrCreate))
                {
                    byte[] array = Encoding.Default.GetBytes(JsonWorker.JsonFileItems);
                    stream.Write(array, 0, array.Length);
                }

                CustomWidget newWidget = new CustomWidget()
                {
                    FileName     = fileItem.Name,
                    FilePathInfo = fileItem.Path,
                    Width        = 400
                };

                ListBoxFiles.Items.Add(newWidget);

                newWidget.IsEnabledTextBoxFileName     = false;
                newWidget.IsEnabledTextBoxFilePathInfo = false;
                newWidget.VisibilityButtonCloseFile    = true;
                newWidget.OpenFileStatus = true;

                Process process = new Process
                {
                    StartInfo           = new ProcessStartInfo("notepad", Path.Combine(fileItem.Path, fileItem.Name)),
                    EnableRaisingEvents = true
                };

                process.Exited += (x, y) =>
                {
                    Dispatcher.Invoke(() =>
                    {
                        newWidget.IsEnabledTextBoxFileName     = true;
                        newWidget.IsEnabledTextBoxFilePathInfo = true;
                        newWidget.VisibilityButtonCloseFile    = false;
                        newWidget.OpenFileStatus = false;
                    });
                };

                newWidget.OpenedFile = process;
                process.Start();
            }
        }