protected override void OnRender(Context cr, Gg.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gg.CellRendererState flags)
            {
                if (flags.HasFlag(Gg.CellRendererState.Focused))
                {
                    var dataItem  = Handler.Source.GetItem(row);
                    var dataStore = Handler.Widget.DataStoreBinding.GetValue(dataItem);
                    if (Handler.currentDataStore == null || !dataStore.Cast <string>().SequenceEqual(Handler.currentDataStore.Cast <string>()))
                    {
                        Handler.listStore.Clear();
                        foreach (var item in dataStore)
                        {
                            Handler.listStore.AppendValues(Handler.Widget.ComboTextBinding.GetValue(item), Handler.Widget.ComboKeyBinding.GetValue(item));
                        }
                        Handler.currentDataStore = dataStore.ToArray();
                    }
                }

                base.OnRender(cr, widget, background_area, cell_area, flags);
            }
 protected override void OnGetPreferredHeight(Gg.Widget widget, out int minimum_size, out int natural_size)
 {
     base.OnGetPreferredHeight(widget, out minimum_size, out _);
     natural_size = Handler.Source.RowHeight;
 }