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