C #을 사용하여 목록 상자 항목에 보이지 않는 속성을 만들고 액세스하려면 어떻게해야합니까?

랜던 콘웨이

C # Windows Forms를 사용하고 있으며 목록 상자를 만들었고이 목록 상자의 각 개별 항목 내에 표시되지 않는 값을 만들고 싶습니다. 이를 위해 저는 디스플레이 멤버를 사용하기로 선택했습니다. 문제는 하나뿐입니다. listBox에서 사용자에게 표시되는 내가 만든 항목의 이름은 코드에서 "Item Name"인 DisplayMember가 아닙니다. 대신 내가 만든 항목의 이름은 "Doc_Engine.PersonalMessageSystemForm + SomeData"로 나타납니다.

내 첫 번째 코드는 다음과 같습니다.

//Create an item in the listBox1.
List<SomeData> data = new List<SomeData>();
data.Add(new SomeData() { Value = 1, Text = "Hidden Text" });
listBox1.DataSource = data;
listBox1.DisplayMember = "Item Name";

두 번째 코드는 다음과 같습니다.

//A class that contains two required strings.
public class SomeData
        {
            public int Value { get; set; }
            public string Text { get; set; }
        }

내 ListBox 사진을 보려면 여기를 클릭하십시오.

목록 상자에있는 내 항목의 이름을 "항목 이름"으로 지정하고 싶습니다. "Doc_Engine.PersonalMessageSystemForm + SomeData"가 아닙니다.

업데이트 : 대신 Tag 속성을 사용할 수 있습니다. 하지만 이렇게하면 똑같은 일이 일어납니다. 항목의 이름이 원하는대로 표시되지 않습니다.

Charles Mager

귀하의 SomeData클래스라는 멤버가 없습니다 Item Name. 두 개의 멤버가 있습니다 : ValueText. 따라서 문서 별로 ToString대신 호출 결과를 얻습니다 .

지정된 속성이 개체에 없거나 DisplayMember 값이 빈 문자열 ( "") 인 경우 개체의 ToString 메서드 결과가 대신 표시됩니다.

표시하려는 값을 유지하기 위해 이를 변경 Value하거나 Text다른 속성을 추가합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관