2014-06-19 6 views
2

RowObject 이름 옆의 첫 번째 열에 표시되어야하는 아이콘이 있습니다. 다른 유형의 obect와 관련된 사진이 다릅니다. 이 코드 부분은 필요한 객체가있는 열을 만듭니다. 당신이 ImageKey 속성 노드의를 설정할 수 있습니다 후TreeListView에서 각 객체의 아이콘을 설정하는 방법

this.descriptionTView = new BrightIdeasSoftware.TreeListView(); 
    this.descriptionTView.CanExpandGetter = x => 
    { 
    if ((x as ITreeViewItem).Items != null) 
     { 
     return (x as ITreeViewItem).Items.Length > 0; 
     } 
    else 
     { 
     return false; 
     } 
    };     

    this.descriptionTView.ChildrenGetter = x => (x as ITreeViewItem).Items; 

    var column1 = new BrightIdeasSoftware.OLVColumn("", "Part0"); 
    column1.AspectGetter = x => (x as ITreeViewItem).Part0; 
    column1.IsEditable = true; 

    var column2 = new BrightIdeasSoftware.OLVColumn("", "Part1"); 
    column2.AspectGetter = x => (x as ITreeViewItem).Part1; 
    column1.IsEditable = true; 
    column2.IsEditable = true; 

    this.descriptionTView.Columns.Add(column1); 
    this.descriptionTView.Columns.Add(column2); 
    private List<ITreeViewItem> itemsList; 
    descriptionTView.Roots = itemsList; 
+0

내가 믿고 사용하여 행 객체에서 직접 이미지를 얻을 것

descriptionTView.OwnerDraw = true; 

을 설정 할 수 있습니다 [이 답변] (HTTP : // 유래 .com/a/12728738/3521452)가 귀하가 찾고있는 것입니다. – Tom

+0

자세한 내용을 추가하고 코드 스 니펫을 게시 하시겠습니까? 정보없이 당신을 도울 수는 없습니다. – Max

+0

ObjectListView에서 우리는 TreeNode를 사용하지 않거나 Node는 다른 객체를 추가합니다. –

답변

2

당신은 또한 할 수 원하는 열

column1.ImageGetter = delegate(object rowObject) { 
    // decide depending on the rowObject which image to return 
    return 0; 
}; 

에 대한 다음

descriptionTView.SmallImageList = imageList1; 

구현할 수있는 ImageGetter을 만들고 예를 들어 다음과 같이 사용하려는 이미지가 포함 된의 ImageList를 할당해야 색인 대신 목록의 이미지 이름을 반환하십시오.

당신은 대안이 ImageAspectName

column1.ImageAspectName = "MyImage"; // Assuming your object has a property `public BitMap MyImage;` 
+0

고맙습니다. 당신이 정말로 나를 도왔습니다. –

0

당신은, 당신의 TreeViewImageList를 추가해야합니다.

+0

노드를 사용하지 않습니다. 내 개체에 ImageKey 특성이 없습니다. –