C# ComboBox

AjronN
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 5 lat
  • Postów:26
0

Witam! Mam utworzoną klasę w której naturalnie zdefiniowane są pola i getery... tworzę listę obiektów tej klasy, a później chce je wpisać do ComboBoxa, jednak chce wygodnie obsługiwać Event w którym po wybraniu elementu z ComboBoxa bedzie coś się działo. Jak przechowywać obiekty i łatwo je obsługiwać, aby ComboBox wyświetlał pole obiektu a nie jak teraz "NazwaProgramu.NazwaKlasy"...

kzkzg
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 godziny
  • Postów:926
0
Kopiuj
combobox1.DisplayMemberPath = /*tutaj nazwa właściwości  która ma się wyświetlać w comboboxie*/

Keep calm and blame frontend.
Tell your cat I said pspsps.
nerdxg
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 5 lat
  • Postów:47
0
Kopiuj
<ComboBox ItemsSource="{Binding ListaObiektow}" DisplayMemberPath="poleObiektu"></ComboBox>
AjronN
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 5 lat
  • Postów:26
0
kzkzg napisał(a):
Kopiuj
combobox1.DisplayMemberPath = /*tutaj nazwa właściwości  która ma się wyświetlać w comboboxie*/

nie mam takiej wlasciwosci... jest tylko comboBox1.DisplayMember

AjronN
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 5 lat
  • Postów:26
0
nerdxg napisał(a):
Kopiuj
<ComboBox ItemsSource="{Binding ListaObiektow}" DisplayMemberPath="poleObiektu"></ComboBox>

Rozumiem, że mam to pisać w xml'u...

Kopiuj
<ComboBox ItemsSource="{Binding listaAut}" DisplayMemberPath="nazwa"></ComboBox>

chyba coś źle wpisałem bo to nic nie zmieniło

kzkzg
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 godziny
  • Postów:926
1

Na przyszłość pisz z której technologii korzystasz. Masz tu kompletny przykład w Formsach:

Kopiuj
using System.Collections.Generic;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public class Test
    {
        public string Nazwa { get; set; }
    }

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            var lista = new List<Test>
            {
                new Test{Nazwa="1"},
                new Test{Nazwa="2"},
                new Test{Nazwa="3"},
            };

            lista.ForEach(o=> comboBox1.Items.Add(o));
            comboBox1.DisplayMember = "Nazwa";
        }
    }
}

Keep calm and blame frontend.
Tell your cat I said pspsps.
obscurity
  • Rejestracja:około 6 lat
  • Ostatnio:20 minut
0

domyślnie nie wyświetla nazwy klasy tylko wywołuje .ToString(). W najprostszym przypadku możesz nadpisać metodę ToString żeby wyświetlało co chcesz. Jak chcesz to zrobić lepiej to najpierw sprecyzuj czy chodzi o winforms czy wpf i daj trochę kodu


"A car won't take your job, another horse driving a car will." - Horse influencer, 1910

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.