현재 진행중인 응용 프로그램에서 현재로드 된 프로젝트 목록을 유지해야하며 ListBox에 각 목록의 이름을 표시해야합니다 (여러 개의 ListBoxes가 있더라도 괜찮습니다). 여기 또는 거기).BindingList를 ListBox에 바인딩 할 때 문제가 발생했습니다.
class Project
{
public String Name;
// Etc. etc...
}
나는로드 된 프로젝트를 모두 포함하는는 바인딩 개체를 가지고, 내 목록 상자 (들)에 결합하고있다. 나는이 작업을 수행 할 때
private BindingList<Project> project_list = new BindingList<Project>();
private ListBox project_listbox;
private void setList()
{
project_listbox.DisplayMember = "Name";
project_listbox.ValueMember = "Name";
project_listbox.DataSource = project_list;
}
그러나, project_listbox
에 표시됩니다 모든이 프로젝트에 대한 클래스 이름의 집합입니다. 내가 여기서 뭔가를 놓치고 있니? ListBox에 바인딩 목록과 관련하여 찾을 수있는 모든 참조는 매우 유사한 설정을 사용합니다.
목록 상자가 ToString을 (호출을)를 구현하고 추가해야합니다 점에 유의하여 클래스를 표시 값으로 사용합니다. Override ToString()을 쉽게 구현하고 문자열 결과로 Name을 반환 할 수 있습니다. –
이것은 ValueMember가되는 속성을 원한다면 좋지 않은 해결책입니다. :) 당신은 여전히 그 중 하나를 {get; 개인 집합}. 그렇지 않으면 ValueMember가 작동하지 않습니다. – CasperT