我有一個組合框,並且我需要允許用戶以每次運行應用程序時新添加的項目都會出現的方式將新項目添加到此組合框中。你能爲我推薦方法嗎?允許用戶將新項目添加到組合框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並返回,如果您遇到問題。 –