2011-03-21 8 views
0

안녕 얘들 아, 나는 내 머리 주위에 WPF를 감싸기 시작하고 막 다른 골목에왔다.WPF 끌어서 놓기 데이터 바인딩

나는 드래그 앤 드롭으로 파일/폴더를 받아들이는 ListBox를 가지고 있습니다. 파일 클래스 마법사에는 "이름", "미리보기 이미지"[및 기타]와 같은 파일 속성이 있고 FileCollection 클래스는 매우 직관적입니다. Collection은 "FilesPath"를 취한 다음 해당 경로에서 모든 파일을 검색합니다. 현재 정적 경로가 연결되어 있지만 폴더를 ListBox로 드래그하면 해당 경로가 변경됩니다.

그래서 내가 원하는 것은 : 나는이 목록 상자에 폴더를 드래그하면

  • 에서, FilesCollection 클래스
+1

그래서, 당신은 파일 드래그 앤 드롭 또는 방법 FilesCollection에 파일을 열거하는 작업을 수행하는 방법을 알고 싶어? –

+0

내 FilesCollection "FilesPath"속성을 ListBox로 드래그 된 폴더의 경로에 바인딩하는 방법을 알고 싶습니다. 희망은 그 말이 맞습니다. –

+0

Parent 속성과 전역 이벤트 "FolderPathChanged"를 사용하여 구현할 수 있다고 생각합니다. 각 항목은 이벤트를 구독하고 소스의 상위 계층에 도달 할 수 있는지 확인합니다. 그런 식으로, 그것은 단지 이론적 인 가정 일뿐입니다. 실제로 어떤 일이 일어날 지 모르겠습니다. – vorrtex

답변

1

True로 AllowDrop의을 설정하기 만하면로의 경로를 연결 Drop 이벤트를 처리합니다.

목록 상자의 정의 :

<ListBox AllowDrop="True" Drop="ListBox_Drop"> </ListBox> 

이벤트 핸들러 :

private void ListBox_Drop(object sender, DragEventArgs e) 
{ 
    if (e.Data.GetDataPresent("FileName")) 
    { 
     string folderPath = e.Data.GetData("FileName"); 
     //do whatever you need to do with the folder path 
    } 
} 
+2

나는 이것과 함께 갈 것이다. 한두 줄의 코드로 충분할 때 너무 나쁘게 묶어두기를 원하는 것과 같은 일이 있습니다. –