类中断绑定中的逻辑

ConsKa

知名会员
已加入
2020年12月11日
留言内容
85
编程经验
Beginner
因此,经过一番争吵之后,我设法编写了一些代码,使我可以读取文本文件,将其拆分并放置到一个数组中,然后将该数组绑定到文本框中-这不是很好,因为有60个数组中的条目,然后将它们拆分到文本框中是很痛苦的-但它可以工作。我能够使用文本文件中的正确数据填充所有文本框,并且文本文件中的数字不会更改-始终为60。

C#:
List<string> Entries = new List<string>();

string DS1 = fn.CombinedName("DataSet1.txt");

            if (File.Exists(DS1))
            {
                var lines = File.ReadAllLines(DS1);
                
                Entries= lines.SelectMany(x => x.Split(new[]
                {
                    ','
                }, StringSplitOptions.None)).ToList();
            
            }            
TimeKeeper.DataContext = this;

然后,我可以将文本框绑定到xaml的输出中,如下所示:

C#:
Text="{Binding Entries [0]}"
Text="{Binding Entries [5]}"

所有这些都在名为TimeKeeper的网格中。

每行有5个条目,所以0&5是x的第一个,然后是x的第二个。

因此,我尝试遵循正确的过程,而不是在主窗口代码中进行设置,而是创建了一个类,并将逻辑放在该类中。

C#:
public class DataCollection
    {
        public List<string> Populate { get; set; }
        FileName fn = new FileName();

        public List<string> Entries()
        {
            string DS1 = fn.CombinedName("DataSet1.txt");

            if (File.Exists(DS1))
            {
                var lines = File.ReadAllLines(DS1);
                
                Populate = lines.SelectMany(x => x.Split(new[]
                {
                    ','
                }, StringSplitOptions.None)).ToList();
            }
            return Populate;
        }
    }

然后在主窗口中

C#:
List<string> Entries = new List<string>();

private void Reload()
        {
            DataCollection dc = new DataCollection();
            dc.Entries();

            Entries = dc.Populate;

            TimeKeeper.DataContext = Entries;
        }

使用断点,我可以看到Entries具有60个应该具有的条目,并且绑定是相同的-我只是不知道为什么它不起作用。我试过了

C#:
TimerKeeper.DataContext = this;

和以前一样,但这也不起作用。

在将逻辑移到类后,我是否缺少现在需要绑定的内容?
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,500
地点
弗吉尼亚州切萨皮克
编程经验
10+
我只会在其他实际需要访问权限时才将其公开。 YAGNI原理应用于访问修饰符。
 
最佳 底部