저는 몇 시간 동안이 글을 쓰고 있습니다. 이제는 내 좌절감을 높이는 서클에서 뛰어 다니고 있습니다.UserControl이 SET를 사용하지 않는 것으로 보입니다.
나는이 컨트롤에 레이블과 콤보 상자라는 다소 단순한 사용자 컨트롤이 있습니다. 레벨 텍스트를 변경하기위한 공개 속성을 공개하고 DropDownItems에 대한 GET/SET을 만들었습니다.
private List<DropdownItemObject> _dropDownItems = new List<DropdownItemObject>();
이 클래스는 항목 (들) 콤보 상자에 추가됩니다 다음과 같이
내 콤보 상자 항목을 포함하는 목록
가 선언된다.public class DropdownItemObject
{
public DropdownItemObject()
{
Tag = null;
Object = null;
}
public DropdownItemObject(string text, object _object = null, object tag = null)
{
Text = text;
Object = _object;
Tag = tag;
}
public object Tag { get; set; }
public object Object { get; set; }
public string Text { get; set; }
}
이것은 UserControl의 노출 된 속성입니다. 사용자 정의 컨트롤의 콤보 상자는 'comboPrimary'라고합니다.
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Editor(typeof (CollectionEditor), typeof (UITypeEditor))]
public List<DropdownItemObject> DropDownItems
{
get
{
return _dropDownItems;
}
set
{
_dropDownItems = value;
comboPrimary.Items.Clear();
foreach (DropdownItemObject item in _dropDownItems)
{
comboPrimary.Items.Add(item);
}
}
}
이 컨트롤을 양식에 추가하면 컬렉션 편집기를 사용하여 드롭 다운 항목을 추가 할 수 있습니다. 아니면 프로그래밍 방식으로이 작업을 수행 할 수 있습니다.
uc1.DropDownItems.Add(new DropdownItemObject("ITEM 998"));
그러나 런타임에는 항목이 드롭 다운 목록에 표시되지 않습니다.
'comboPrimary'에 대해'DisplayMember '를 어디에 설정하는지 알 수 없습니다. –