Avatar
rwn
Člen
Avatar
rwn:

zdravím, uvízl jsem na takové asi vcelku jednoduché věci. Snažím se získávat hodnoty co mám v dataGridu. Ve WF jsem to dělal jednoduše:

dataGridView.Rows[i].Cells[j].Value

Ale tak nějak nemůžu přijít na to, jak to udělat ve WPF. Když napíšu něco ve smysli dataGrid.Items.. a program krokuju, tak v Items je položka SourceCollection, která pod indexy má ony udáje, které potřebuju, ale nedokážu přijít na to, jak se tam dostat. Budu rád za každý nápad jestli někoho něco napadá. :)

Odpovědět 29.6.2014 4:09
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na rwn
Jan Vargovský:

Jestli je to nějaká kolekce objektů (což předpokládám), tak to normálně můžeš projet cyklem

class A
{
    public int Prop1 { get; set; }
    public int Prop2 { get; set; }
    public int Prop3 { get; set; }
}

public MainWindow()
{
    InitializeComponent();
    ObservableCollection<A> collection = new ObservableCollection<A>();
    for (int i = 0; i < 3; i++)
        collection.Add(new A { Prop1 = i, Prop2 = i*i, Prop3 = i*i*i });
    dataGrid.ItemsSource = collection;


    foreach (A a in dataGrid.Items)
    {
        //Debug.WriteLine(a.GetType());
        Debug.WriteLine(string.Format("{0} - {1} - {2}", a.Prop1, a.Prop2, a.Prop3));
    }

    for (int i = 0; i < dataGrid.Items.Count; i++)
    {
        var a = dataGrid.Items[i] as A;
        Debug.WriteLine(string.Format("{0} - {1} - {2}", a.Prop1, a.Prop2, a.Prop3));
    }
}

Schválně jsem tam nechal i ten koment, protože to bere normálně i ten prázdný řádek, tak stačí nastavit

CanUserAddRows="False"

Jinak bys mu sel kontrolovat, jestli to je ten typ, který ty chceš.

Editováno 29.6.2014 14:04
 
Nahoru Odpovědět 29.6.2014 14:03
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 2 zpráv z 2.