我正在使用WPF中的ListBoxes,我正在尝试将来自不同列表框的项目保存到同一个文件中。至于现在每个列表框都有自己的文件。
到目前为止,这是我的代码:
private void OnSaveAs()
{
SaveFileDialog save = new SaveFileDialog();
save.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
if (save.ShowDialog() == true)
{
//File.WriteAllText(save.FileName, InputsMinMax.Text);
}
if (this.InputsMV.Items.Count > 0 && save.ShowDialog() == true)
{
using (FileStream S = File.Open(save.FileName, FileMode.CreateNew))
{
using (StreamWriter st = new StreamWriter(S))
{
foreach (var aa in InputsMV.Items)
st.WriteLine(aa.ToString());
}
}
}
}
答案 0 :(得分:1)
要保存多个ListBox
元素中的项目,您可以创建一个简单的文件格式,其中为每个元素保存其名称,项目数和项目值:
[line 0] ListBox name
[line 1] Number of items - n
[line 2] Item 1
[line 3] Item 2
... ...
[line n + 1] Item n
[line n + 2] Next ListBox name
请注意,此格式假定项目不包含换行符。
然后你可以保存所有元素中的项目:
private void OnSaveAs()
{
SaveFileDialog save = new SaveFileDialog();
save.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
if (save.ShowDialog() == true)
{
using (FileStream S = File.Open(save.FileName, FileMode.CreateNew))
{
using (StreamWriter st = new StreamWriter(S))
{
// Iterate over ListBox elements
foreach (var myListBox in MyListBoxes)
{
// Write the name of the ListBox element
streamWriter.WriteLine(myListBox.Name);
// Write the number of elements
streamWriter.WriteLine(myListBox.Items.Count);
// Write the elements
foreach (var item in myListBox.Items)
{
streamWriter.WriteLine(item.ToString());
}
}
}
}
}
}