我需要一个类列表,它将附加到文件中。
对列表所做的所有更改都将保存到文件中。
我想保留BindingList的功能,并在文件名中添加一个字符串并处理OnChange事件。
我该怎么做?
我写了一个有效但不完全的课程。如何解决?
public class ListLinkedToFile
{
private string _fileName = "";
public BindingList<string> List;
public ListLinkedToFile(string FileName)
{
List = new BindingList<string>();
_fileName = FileName;
if (File.Exists(_fileName))
{
var _list = new List<string>(File.ReadAllLines(_fileName));
List = new BindingList<string>(_list);
}
List.RaiseListChangedEvents = true;
List.ListChanged += new ListChangedEventHandler(ListChanged);
}
public void ListChanged(object sender, ListChangedEventArgs e)
{
File.WriteAllLines(_fileName, List);
}
public void Add(string item)
{
List.Add(item);
}
public bool Remove(string item)
{
return List.Remove(item);
}
public void RemoveAt(int index)
{
List.RemoveAt(index);
}
public void Clear()
{
List.Clear();
}
}
我需要这样的东西。但我可以在哪里获得名单?
public class ListLinkedToFile : BindingList<string>
{
public string FileName = "";
protected override void OnListChanged(ListChangedEventArgs e)
{
base.OnListChanged(e);
if (FileName != "") File.WriteAllLines(FileName, List /*?????????*/);
}
}
示例运行:
var a = new ListLinkedToFile("123.txt");
a.Add("hello");
a.Add("my");
a.RemoveAt(0);
string line = a[0]; // of course not work how fix?
a.Clear();