Gtk.TreeStore.SetValues C# (CSharp) Method

SetValues() public method

public SetValues ( Gtk.TreeIter iter ) : void
iter Gtk.TreeIter
return void
        public void SetValues(TreeIter iter, params object[] values)
        {
            int[] columns = new int[values.Length];
            GLib.Value[] vals = new GLib.Value[values.Length];
            int n_values = 0;

            for (int i = 0; i < values.Length; i++) {
                if (values[i] != null) {
                    columns[n_values] = i;
                    vals[n_values] = new GLib.Value (values[i]);
                    n_values++;
                }
            }

            gtk_tree_store_set_valuesv (Handle, ref iter, columns, vals, n_values);

            for (int i = 0; i < n_values; i++)
                vals[i].Dispose ();
        }

Usage Example

 //Přídání eventu na kliknutí řádku v treeview
 private void appendEventHandlers()
 {
     this.treeview.RowActivated += (sender, e) =>
     {
         //Třída TreeIter je důležitá pro upravení hodnot řádku
         Gtk.TreeIter iterator;
         //Získa TreeIter z cesty řádku, na který bylo kliknuto
         foodTreeStore.GetIterFromString(out iterator, e.Path.ToString());
         //Kontola, jestli řádek na který bylo kliknuto je řádek, který se může upravovat, což jsou jen řádky s jídlem
         if (foodTreeStore.GetValue(iterator, 2) != null)
         {
             //Název jídla
             string label = foodTreeStore.GetValue(iterator, 0).ToString();
             //Najde index v listu jídla a podle toho je třída předána do dialogu, který přídává nebo upraví jídlo
             int result = food.FindFoodIndex(label);
             var dlg    = new AddFoodDialog(food[result]);
             //dlg.SetAllergenes(food[result].GetAllergenIds());
             if (dlg.Run() == (int)ResponseType.Ok)
             {
                 //Upraví data
                 foodTreeStore.SetValues(iterator, dlg.Values.ToArray().SubArray(1, 5));
                 food[result].SetValues(dlg.Values.ToArray());
                 //Clear all relations with allergens
                 food[result].Allergen.Clear();
                 //aId = allergen Id
                 foreach (int aId in dlg.Allergenes)
                 {
                     //Pole alergenů jsou ve výchozí hodnotě 0, opět aby se dali kontrolovat
                     if (aId == 0)
                     {
                         continue;
                     }
                     //Vezme se alergen přímo z databáze, aby se nevytvářel v DB nový záznam, ale aby vznikla vazba
                     var allergen = (from a in this.server.database.Allergenes.ToList() where a.Id == aId select a).First();
                     food[result].SetAllergen(allergen);
                 }
             }
         }
     };
 }
All Usage Examples Of Gtk.TreeStore::SetValues