C# ComboBox

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"...

0
combobox1.DisplayMemberPath = /*tutaj nazwa właściwości  która ma się wyświetlać w comboboxie*/
0
<ComboBox ItemsSource="{Binding ListaObiektow}" DisplayMemberPath="poleObiektu"></ComboBox>
0
kzkzg napisał(a):
combobox1.DisplayMemberPath = /*tutaj nazwa właściwości  która ma się wyświetlać w comboboxie*/

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

0
nerdxg napisał(a):
<ComboBox ItemsSource="{Binding ListaObiektow}" DisplayMemberPath="poleObiektu"></ComboBox>

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

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

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

1

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

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";
        }
    }
}
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

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