Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Daniel Gabzdyl:16.12.2016 22:19

Ahoj, mám takový problém.
Použil jsem DataSource k importu souboru do listoboxu, ale itemy v listboxu nejdou upravit, když je to DataSource.

Nemáte nějaký nápad, jak by to šlo vyřešit?

Děkuji.
Načtení DataSource

string path = "";
            OpenFileDialog fdlg = new OpenFileDialog();
            fdlg.Title = "Vyber titulky";
            fdlg.InitialDirectory = @"c:\";
            fdlg.Filter = "All files (*.*)|*.*|All files (*.*)|*.*";
            fdlg.FilterIndex = 2;
            fdlg.RestoreDirectory = true;
            if (fdlg.ShowDialog() == DialogResult.OK)
            {
                path = fdlg.FileName;
            }
            try
            {
                listBox1.DataSource = File.ReadAllLines(path);

            }
            catch
            {
                MessageBox.Show("Neplatný soubor, nebo neplatný formát!", "Neplatný soubor");
            }
 
Odpovědět
16.12.2016 22:19
Avatar
Daniel Gabzdyl:16.12.2016 22:21

Upravit to chci prozatím takto:

for(int i = 1;i<listBox1.Items.Count;i++)
            {   listBox1.Items.RemoveAt(i);
                listBox1.Items.Insert(i, "test");
            }
 
Nahoru Odpovědět
16.12.2016 22:21
Avatar
Honza
Člen
Avatar
Honza:16.12.2016 22:50

Zkus jednotlivé položky upravovat přímo v datasource.
Pokud chceš jednotlivé položky měnit tak jak uvádíš, nepoužívej datasource, ale naplň si listbox daty ručně.

Nahoru Odpovědět
16.12.2016 22:50
Snadnou cestou se daleko nedostanete, je tam velká tlačenice...
Avatar
Odpovídá na Honza
Daniel Gabzdyl:16.12.2016 22:54

Já právě potřebuji, abych pokaždé mohl načíst jiný soubor, ale vykonat stejný proces.

 
Nahoru Odpovědět
16.12.2016 22:54
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Daniel Gabzdyl
David Hartinger:16.12.2016 23:51

Když se podíváš, co ti vrací metoda ReadAllLines(), zjistíš, že je to pole stringů. A v poli opravdu nemůžeš mazat indexy :) Zkus tam dát BindingList:

listBox1.DataSource = new BindingList<string>(File.ReadAllLines(path));

P.S. případně ObservableCollec­tion, pokud to děláš ve WPFku.

Editováno 17.12.2016 0:00
Nahoru Odpovědět
16.12.2016 23:51
You are the greatest project you will ever work on.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.