0

Compact Framework 용 메뉴 컨트롤을 만들고 있습니다. 컨트롤에는 항목 모음이 있습니다. 비주얼 스튜디오 디자이너를 사용하여 항목을 추가 할 수는 있지만 디자이너 파일에 추가되지 않으므로 다음에 디자이너를 열거 나 솔루션을 빌드 할 때 메뉴에 더 이상 항목이 없습니다. 컬렉션이 저장되지 않는 Compact Framework 사용자 지정 컨트롤

public class ItemMenu : Control 
{ 
    public ItemMenu() 
    { 
     Columns = 4; 
     RowHeight = 64; 
     ColumnWidth = 64; 
     _items.ListChanged += new ListChangedEventHandler(_items_ListChanged); 
    } 

    private BindingList<Item> _items = new BindingList<Item>(); 
    public BindingList<Item> Items 
    { 
     get { return _items; } 
    } 

    public ImageList NormalImages { get; set; } 
    public ImageList SelectedImages { get; set; } 

    public int Columns { get; set; } 
    public int RowHeight { get; set; } 
    public int ColumnWidth { get; set; } 
    public int Rows 
    { 
     get { return (int)Math.Ceiling((double)Items.Count/(double)Columns); } 
    } 

    private void _items_ListChanged(object sender, ListChangedEventArgs e) 
    { 
     Refresh(); 
    } 
} 

사람이 내가에 저장하는 항목의 컬렉션을 얻을 수있는 방법을 알고 있나요

: 여기
public class Item 
{ 
    public int ImageIndex { get; set; } 

    private string _text = ""; 
    public string Text 
    { 
     get { return _text ?? ""; } 
     set { _text = value ?? ""; } 
    } 

    public string Name { get; set; } 
} 

이 메뉴에 대한 관련 코드입니다 : 여기

이 항목에 대한 코드입니다 디자이너 파일을 비주얼 스튜디오 디자이너에서 편집하면 어떻게됩니까?

+0

혼란스러워. 디자이너 파일에서 편집 할 때 코드를 입력하면 안됩니다. 코드를 입력하는 경우 "디자이너가 생성 한 파일"에서 코드를 입력하면 안됩니다. – jp2code

답변

0

공휴일에있을 때 가능한 한 최선을 다해 답변하려고 노력할 것입니다.하지만 몇 가지 디자인 타임 속성을 지정해야합니다. Controls 어셈블리에 추가 할 수있는 DesignTimeAttributes 파일이 있습니다. 그것은 XML 파일입니다, 나는 XMTA 확장을 믿습니다. 각 클래스의 XML 파일에서 디자인 타임 편집기를 컨트롤에 연결하는 것 외에도 다른 디자인 타임 속성을 지정할 수 있습니다.

테스트 할 속성은 DesignerSerializationVisibility 속성입니다. 이 컬렉션을 Content에 맞게 설정하면 컬렉션을 올바르게 serialize 할 수 있다고 생각합니다.

더 많은 지침이 필요한 경우 예제가있는 곳으로 돌아 가면 답변을 업데이트 할 수 있습니다.