morto
@morto
вечный ученик

Как динамично вывести данные с файла?

Здравствуйте, в файле есть данные, которые я считываю и пытаюсь вывести в окне, но данные не выводятся. Как заставить работать этого трудягу?
P.S.: знак "=" используется как разделитель между записями.

public partial class recordsTable : Window
    {
        public recordsTable()
        {
            ShowRecords();
            InitializeComponent();
        }

        public static class MyStackPanel
        {
            public static StackPanel stackPanel2;

            public static void CreateStackPanel()
            {
                StackPanel stackPanel = new StackPanel();
                stackPanel.Orientation = System.Windows.Controls.Orientation.Horizontal;
                stackPanel.HorizontalAlignment = HorizontalAlignment.Center;
                stackPanel.VerticalAlignment = VerticalAlignment.Top;
                stackPanel2 = stackPanel;
            }

            public static void AddInStackPanel(Border item)
            {
                Debug.Write(item);
                Debug.WriteLine("ITEM", item);
                stackPanel2.Children.Add(item);
            }
        }

        private void ShowRecords()
        {
            int i = 0;
            bool isNumberPosition = false;
            string path = AppDomain.CurrentDomain.BaseDirectory + "/Resources/records.txt";
            using (StreamReader sr = new StreamReader(path, System.Text.Encoding.Default))
            {
                string line;
                while ((line = sr.ReadLine()) != null)
                {
                    if(line == "=")
                    {
                        MyStackPanel.CreateStackPanel();
                        isNumberPosition = true;
                        if(i > 0)
                        {
                            RootStackPanel.Children.Add(MyStackPanel.stackPanel2);
                        }
                        i++;
                        continue;
                    }
                    if(isNumberPosition)
                    {
                        MyStackPanel.AddInStackPanel((CreateLabel(line, 40)));
                        isNumberPosition = false;
                    }
                    else
                    {
                        MyStackPanel.AddInStackPanel((CreateLabel(line)));
                    }
                }
            }
        }



        private Border CreateLabel(string value, int width = 150)
        {
            Border border = new Border();
            Label label = new Label();
            border.BorderBrush = Brushes.Gray;
            border.BorderThickness = new Thickness(2);

            label.FontSize = 16;
            label.Width = width;
            label.Content = value;

            border.Child = label;
            Debug.Write(label);
            Debug.WriteLine("LABEL", label);
            return border;
        }
    }
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы