我有一个组合框,并且我需要允许用户以每次运行应用程序时新添加的项目都会出现的方式将新项目添加到此组合框中。你能为我推荐方法吗?允许用户将新项目添加到组合框C#
<?xml version="1.0" encoding="utf-8"?>
<Items>
<Items>
<Company>wd</Company>
<Fluid>dswq</Fluid>
<Price>qw</Price>
</Items>
</Items>
我有一个组合框,并且我需要允许用户以每次运行应用程序时新添加的项目都会出现的方式将新项目添加到此组合框中。你能为我推荐方法吗?允许用户将新项目添加到组合框C#
<?xml version="1.0" encoding="utf-8"?>
<Items>
<Items>
<Company>wd</Company>
<Fluid>dswq</Fluid>
<Price>qw</Price>
</Items>
</Items>
您可以检出akavache。它是基于SQLite3数据库的持久键值缓存。对我很好。
另一方面,您可以决定保存的值是保存在每个用户还是每台机器上,而且它超快。
然后,您可以将ObservableCollection绑定到组合框ItemsSource并在循环中添加保存的项目。
谢谢我会看看@ user3512524 –
它也可以加密你的数据。您可以将xml放入缓存中,否则akavache会尝试为您序列化它。请确保允许 –
如果您使用文本文件(未加密,任何人都可访问)都可以使用,请按照以下快速表单进行操作。
public partial class Form1 : Form
{
private string[] options;
public Form1()
{
InitializeComponent();
initTextBox();
}
private void initTextBox()
{
try
{
options = File.ReadAllLines("input.txt");
}
catch (FileNotFoundException ex)
{
File.CreateText("input.txt").Close();
options = File.ReadAllLines("input.txt");
}
if (options.Length == 0) return;
foreach (var item in options)
{
comboBox.Items.Add(item);
}
}
private void button_addItem_Click(object sender, EventArgs e)
{
comboBox.Items.Add(textBox_newItem.Text);
File.WriteAllLines("input.txt", options);
}
}
如果您想要更安全的版本,请使用其他人建议的数据库I/O替换文件I/O。
我更喜欢xml,因为我正在处理三个组合框 –
https://msdn.microsoft.com/en-us/library/mt693072.aspx 此链接应该包含所有您需要的信息。 –
你可以试试这个,这只是一个简单的表示你的问题:
首先加载文件到的XDocument:
var xml = XDocument.Load("D:\\temp.xml");
然后将其加载到一个匿名类型列表:
var studentLst = xml.Descendants("Items").Select(d =>
new
{
Company = d.Element("Company").Value,
Fluid = d.Element("Fluid").Value,
Price = d.Element("Price").Value
}).ToList();
然后选择你要绑定到你的组合框什么属性(在这种情况下,我选择公司):
comboBox1.DataSource = studentLst.Select(x => x.Company).ToList();
P.S.这是我的XML文件的格式(我做的第一个节点为“项”,这样我可以看到所有的“项目”节点):
<?xml version="1.0" encoding="utf-8"?>
<Item>
<Items>
<Company>wd</Company>
<Fluid>dswq</Fluid>
<Price>qw</Price>
</Items>
</Item>
存储文件或数据库中新添加的ComboBox项,和负载每次运行应用程序时,从此文件(或数据库)中的组合框项目 –
我正在考虑这种方式,我正在尝试使用xml文件,但如果可以提供帮助,我不知道如何使用它。 @MikhailNeofitov –
SO不是一个编码服务,尝试搜索如何使用xml并返回,如果您遇到问题。 –