Bir Windows Form Uygulaması üzerinde çalışıyorum. Metin kutusu endeksi bu kodla kaydedilir ve ListBox olarak gösterilebilir:JSON Dosyasını ListBox ve TextBox'a Yükle C#
private void getParams(FunctionData data)
{
blabla1.Text = data.blabla1name;
blabla2.Text = data.blabla2name;
functionNameBox.Text = data.functionName;
return;
}
private void functionListBox_SelectedIndexChanged(object sender, EventArgs e)
{
if (functionListBox.SelectedItem == null) { return; }
foreach (var obj in funcParamList)
{
if (obj.functionName == functionListBox.SelectedItem.ToString())
{
getParams(obj);
}
}
}
Ve kaydedin:
Ayrıca Aşağıdaki kod ile (ListBox öğeyi tıklatarak) düzenlemek için tekrar TextBox nesneleri toplamak onları ile JSON olarak dosyaya:
private void saveFileButton_Click(object sender, EventArgs e)
{
fileName = fileNameBox.Text;
string jsonFunc = JsonConvert.SerializeObject(funcParamList);
System.IO.File.WriteAllText(@"<blablapath>\" + fileName + ".txt", jsonFunc);
}
ben ListBox gösteriliyor için kullanabilirsiniz JSON dosyasındaki 'İşlevAdı' nesne yoktur.
Sorum şu: Bu dosyayı nasıl yükleyebilirim Native Load/Open File Dialog'u alıp nesneleri ListBox'ta gösterebilir ve bunları yeniden düzenleyebilir miyim? Aşağıdaki kod ile bunu yapmak için denedim ama çalışmıyor nasıl
Ve burada:
private void loadFileButton_Click(object sender, EventArgs e)
{
OpenFileDialog loadFileDialog = new OpenFileDialog();
...
if (loadFileDialog.ShowDialog() == DialogResult.OK)
{
string jsonFileName = loadFileDialog.FileName;
string jsonFile = File.ReadAllText(jsonFileName);
dynamic loadedFile = JsonConvert.DeserializeObject(jsonFile);
//if (functionListBox.SelectedItem == null) { return; }
foreach (var obj in loadedFile)
{
if (obj.functionName != null)
{
functionListBox.Items.Add(obj.functionName);
getParams(obj); // I get exception here
funcParamList.Add(loadedFile);
functionListBox.Refresh();
}
}
}
OpenFileDialog iletişim kutusu için seçiminizdir. Bir şeyi her değiştirdiğinizde dosyayı yeniden yazmanız gerekir. – Mafii
Tamam, bununla çalışacağım, bunu OpenFileDialog ile yapmaya çalıştım ama başaramadım. Nasıl yapmalıyım? –
https://msdn.microsoft.com/en-us/library/system.windows.forms.openfiledialog(v=vs.110).aspx aşağıya doğru ilerleyin, bir örnek – Mafii