Skocz do zawartości

[Operacje sferyczne] Szukanie dla pola typu lista.

Polecane posty

Mam pole typu lista inicjowane jak niżej. Czy jest jakaś przyczyna w mojej implementacji, że nie działa wyszukiwanie, jak to ma miejsce w innych tego typu polach - podmiotów zaczynających się na Adam, jest kilka na tej liście:

List<Podmiot> technicy = kontekstOperacji.Uchwyt.PodajObiektTypu<IPodmioty>().Dane.Wszystkie().Where(p => p.Cechy.Where(c => c.Id == 100003).Count()>0).OrderBy(p => p.NazwaSkrocona).ToList();
var wyborTechnika = new ParametrWyboruWartosci<Podmiot>(NazwaParametru, technicy);
wyborTechnika.ZezwalajNaBrakWartosci = true;
IOknoParametrowOperacji oknoParametrow = kontekstOperacji.Uchwyt.PodajObiektTypu<IOknoParametrowOperacji>();
oknoParametrow.Tytul = Nazwa;
oknoParametrow.Parametry.Dodaj(wyborTechnika);

image.png.309977085b0c6016b00de859b46a14dc.png

Link to postu
Cytat

Czy jest jakaś przyczyna w mojej implementacji, że nie działa wyszukiwanie, jak to ma miejsce w innych tego typu polach

Domyślnie wyszukiwanie działa po polu Nazwa lub Tytul. Encja Podmiot nie ma takiego pola, więc wyszukiwanie tutaj po prostu nie działa - będziemy musieli tutaj dodać wyjątek, zapisuję do poprawy.

Da się to jednak obejść ustalając własny opis wartości w combo, który będzie wyświetlany zamiast naszego wbudowanego wzorca:

wyborTechnika.FunkcjaOpisuWartosci = p => p.NazwaSkrocona;
  • Dziękuję 1
Link to postu
  • 1 miesiąc temu...
  • 2 tygodnie później...

Trochę odgrzebie temat, bo nie wiem, co robię źle. Chciałbym Sobie podstawić po ParametrWyboruWartosci listę według własnej zdefiniowanej klasy. Wyszedłem z założenia, że jeżeli zdefiniuje ją z Id i Nazwa, to będzie działać, ale zamiast listy wyboru, dostaje tylko nazwę klasy do wyboru.

 

Definicja klasy:

public class Rocznik
{
    public int Id;
    public string Nazwa;
}

Przygotowanie wartości:

List<Rocznik> lista = new List<Rocznik>();
Rocznik rocznik = new Rocznik();
lista.Add(rocznik);
rocznik.Id = 2024;
rocznik.Nazwa = "2024";

Definicja parametru:

ParametrWyboruWartosci<Rocznik> parametr_roku = ParametrOperacji.UtworzParametrWyboru<Rocznik>("Rok", lista);

Oczywiście zwykła lista, prostego typu, działa prawidłowo.

List<int> lata = new List<int>();
lata.Add(2024);
ParametrWyboruWartosci<int> parametr_roku = ParametrOperacji.UtworzParametrWyboru<int>("Rok", lata);

 

Link to postu

W combo wyświetlana jest wartość zwrócona przez metodę ToString() lub przez opisaną wcześniej funkcję opisu wartości, jeśli została ona ustawiona (można ją też podać w parametrze metody UtworzParametrWyboru). W domyślnej implementacji metody ToString() zwracana jest nazwa klasy, stąd obserwowane u Pana zachowanie.

Edytowane przez Mateusz Matuszewski
literówka
Link to postu
×
×
  • Dodaj nową pozycję...