szukaj pozycji w comboboxie, lub datasecie

0

problem jest taki:

mam comboboxa KATEGORIA w którym są elementy z DataSeta (DisplayMemberPath="nazwa" SelectedValuePath="id")
mam też dataseta PRODUKTY - zawiera on kolumnę ID_Kategoria

i teraz chcę w tym comboboxie znaleźć pozycję na któej znajduje się dane ID (ID_KATEGORIA), a potem ją ustawić
czyli przy zmianie produktu (poprzedni/następny) zmienia się też combobox.selectedIndex= (i tutaj potrzebuje znaleźc element przez znane mi ID KATEGORIA)
jeżeli to niemożliwe, to powiedzcie jak wyszukać w datasecie pozycję wyszukujac przez ID_KATEGORIA (bo indeksy w comboboxie i w tym datasecie są takie same)

0

Trochę nie rozumiem twojej wypowiedzi co gdzie i jak ma robić, ale myślę że to ta godzina iż już myśleć się nie chce. Ale tak jest to możliwe prosty przykład.

Mam funkcję wyciągającą pewien element z comboboxa i wkładającego go do listy

Za pomocą tego rozwiązania możesz manipulować elementami

ActionModel element = (ActionModel)cB_Action.SelectedValue;
lB_Action.Items.Add(element);
 

Tak wygląda u mnie model elementu

ważne jest tutaj nadpisanie ToString() nie robiąc tego w comboboxie będziesz miał głupoty wypisane

public class ActionModel
    {
        public string slug { get; set; }
        public string name { get; set; }
        public string description { get; set; }
        public string script { get; set; }

        public override string ToString()
        {
            return name;
        }
    }
 

Teraz jak chcesz np wyszukać i zaznaczyć to foreach używasz i standardowe metody.
Tutaj dam ci przykład jak się odwołać i wyciągnąć jakieś elementy czy informacje z wskazanego elementu

ActionModel element = (ActionModel)cB_Action.SelectedValue;

MessageBox.Show("Informacje : " + element.description, element.slug);
 

Teraz tak z kapy pseudo kot ci napiszę

foreach(Model element in nameCombobox.Items)
{
if(element.Id == TwojeSzukaneID )
{
// twoja funkcja
break;
}
}

 

Dam Ci jeszcze przykład operacji na listBoxie Gdzie po inicjacji startu stworze obiekt z listą akcji wrzuconych z listboxa
Funkcja ta to GetModel()

private void ActionStart()
        {
            try
            { 
                DatumInforStepScript actionlist = GetModel();

                string jsonActionlist = JsonConvert.SerializeObject(actionlist);
                SeDriverAutomation.SeleniumAtomat.AutomatInstance.InicjateTest(jsonActionlist, tB_Iframe.Text);
            }
            catch
            {

            }
        }


        private DatumInforStepScript GetModel()
        {
            DatumInforStepScript model = new DatumInforStepScript();
            model.name = tB_Anchor.Text;
            model.bazaValue = tB_Value.Text;
            model.bazaItem = "Akcja Testowa";
            
            if(lB_Action.Items != null)
            {
                model.actions = new List<actionObject>();
            }

            foreach(ActionModel item in lB_Action.Items)
            {
                actionObject action = new actionObject();
                action.slug = item.slug;
                action.script = AW_Acction.MV_DO.GetActualSctript(item.slug);
                model.actions.Add(action);
            }

            return model;
        }
 
0

Nie wiem czy dobrze myślę i rozumiem, ale w DataView masz metodę Find:

https://msdn.microsoft.com/en-us/library/46d41xk2%28v=vs.110%29.aspx

1 użytkowników online, w tym zalogowanych: 0, gości: 1