When are you trying to update your features? (which event?)
It might happen that the feature layer is not yet initialized when you try to update and so the collection of graphics is not loaded yet.
#region Update private void btn_save_Click(object sender, RoutedEventArgs e) { try { FeatureLayer feature_layer = (FeatureLayer)main_page.MapInstance.Layers["Table"]; feature_layer.UpdateCompleted += new EventHandler(feature_layer_UpdateCompleted); feature_layer.Update(); } catch (Exception exp) { MessageBox.Show(exp.Message); } } private void feature_layer_UpdateCompleted(object sender, EventArgs e) { FeatureLayer feature_layer = (FeatureLayer)main_page.MapInstance.Layers["Table"]; int selected_index = cb_rows.SelectedIndex; feature_layer.Graphics[selected_index].Attributes["id"] = int.Parse(tb_id.Text); feature_layer.Graphics[selected_index].Attributes["name"] = tb_name.Text; feature_layer.Graphics[selected_index].Attributes["given_date"] = dp_given_date.SelectedDate; feature_layer.Graphics[selected_index].Attributes["level"] = (double)nud_level.Value; cb_rows.Items.Insert(selected_index, tb_id.Text + " - " + tb_name.Text); cb_rows.Items.RemoveAt(selected_index + 1); cb_rows.SelectedIndex = selected_index; btn_save.IsEnabled = false; } #endregion #region Query private void cb_rows_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (cb_rows.SelectedItem == null) return; int selected_index = cb_rows.SelectedIndex; string table_layer_path = main_page.MainMapLayer + "3"; QueryTask querytask_on_table = new QueryTask(table_layer_path); querytask_on_table.DisableClientCaching = true; querytask_on_table.ExecuteCompleted += QueryOnTable_ExecuteCompleted; querytask_on_table.Failed += QueryTask_Failed; ESRI.ArcGIS.Client.Tasks.Query query_on_table = new ESRI.ArcGIS.Client.Tasks.Query(); query_on_table.Where = "id = '" + cb_rows.SelectedItem.ToString().Split('-')[0].Trim() + "'"; query_on_table.OutFields.Add("*"); querytask_on_table.ExecuteAsync(query_on_table); } public void QueryOnTable_ExecuteCompleted(object sender, ESRI.ArcGIS.Client.Tasks.QueryEventArgs args) { IList<Graphic> query_results = null; FeatureSet feature_set = args.FeatureSet; if (feature_set != null && feature_set.Features.Count > 0) query_results = feature_set.Features; if (query_results != null && query_results.Count == 1) { tb_id.Text = int.Parse(query_results[0].Attributes["id"].ToString()).ToString(); tb_name.Text = query_results[0].Attributes["name"].ToString(); dp_given_date.SelectedDate = DateTime.Parse(query_results[0].Attributes["given_date"].ToString()); nud_level.Value = double.Parse(query_results[0].Attributes["level"].ToString()); btn_save.IsEnabled = false; } } #endregion