2010-11-26 4 views
1

사용자 지정 사용자 지정 컨트롤에 List가 있습니다. 해당 목록의 내용이 변경 될 때마다 목록의 각 이미지를 다시 그리기 위해 컨트롤을 원합니다. 아이템의 이동, 추가 또는 제거는 이벤트를 발생시켜야합니다.C#에서이 유형의 이벤트를 만들 수 있습니까?

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Drawing; 
using System.Data; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace WebServiceScanner 
{ 
    public partial class imageList : UserControl 
    { 
     public imageList() 
     { 
      InitializeComponent(); 
     } 

     public List<Image> Images { get; set; } 

     public void AddImage(Image image) 
     { 
      Images.Add(image); 
     } 

     public void RemoveImage(Image image) 
     { 
      Images.Remove(image); 
     } 

     public void MoveImageLeft(int index) 
     { 
      Image tmpImage = Images[index]; 
      Images[index] = Images[index - 1]; 
      Images[index - 1] = tmpImage; 
     } 

     public void MoveImageLeft(int index) 
     { 
      Image tmpImage = Images[index]; 
      Images[index] = Images[index + 1]; 
      Images[index + 1] = tmpImage; 
     } 
    } 
} 

이 작업을 수행 할 수 있습니까?

안내해 주셔서 감사합니다. 배울 열망하는!

답변

0
public partial class imageList : UserControl 
    { 

     public event OnChange; 

     public imageList() 
     { 
      InitializeComponent(); 
     } 

     public List<Image> Images { get; set; } 

     public void AddImage(Image image) 
     { 
      Images.Add(image); 
      this.OnChange(); 
     } 

     public void RemoveImage(Image image) 
     { 
      Images.Remove(image); 
      this.OnChange(); 
     } 

     public void MoveImageLeft(int index) 
     { 
      Image tmpImage = Images[index]; 
      Images[index] = Images[index - 1]; 
      Images[index - 1] = tmpImage; 
      this.OnChange(); 
     } 

     public void MoveImageLeft(int index) 
     { 
      Image tmpImage = Images[index]; 
      Images[index] = Images[index + 1]; 
      Images[index + 1] = tmpImage; 
      this.OnChange(); 
     } 
    } 
+2

공개적으로 설정할 수있는 경우가 아니라면'Images' 속성을 읽기 전용 또는 비공개로 설정하는 것이 좋습니다. 그렇지 않으면 원하는 메소드를 호출하지 않고 목록을 변경할 수 있습니다. – David

+0

this.OnChange() 메서드는 무엇을 설명 할 수 있습니까? –

+0

클래스 외부에서 처리 할 수있는 onchange 이벤트를 발생시킵니다. –

관련 문제