2010-02-03 3 views
2

WPF 응용 프로그램에서 런타임에 표시 및 편집 (크기 및 위치) 할 ObservableCollection 개체 (이미지 영역)가 있습니다.Databind InkCanvas Children

내 개체를 나타내는 사각형이있는 선택 모드에서 InkCanvas를 사용하려고하지만 데이터 바인딩을 직접 지원하지 않는 것 같습니다.

어떻게 든 InkCanvas의 Children 컬렉션을 ObservableCollection에 바인딩 할 수 있습니까?

+1

나는 비슷한 것을 시도했지만 아무 것도 발견하지 못했습니다. 첨부 된 종속성 속성을 사용하여 끝내서 바인딩하려는 Children 컬렉션과 ObservableCollection을 수동으로 동기화합니다. 그래도 더 좋은 제안을 듣고 싶습니다. –

+0

이것은 기본적으로 지금하고 있습니다. InkCanvas Children을 수동으로 채우는 것 외에도 SelectionMoved 및 SelectionResized도 처리하고 수동으로 값을 모델에 다시 넣습니다. 이 모든 것은 나에게 다음 버전에서 향상시킬 수있는 확실한 점이 하나 있습니다. –

답변

1

캔버스가 ItemsControl.ItemsPanel로 설정된 상태에서 ItemsControl을 사용해 보았습니까? 그런 다음 ItemsSource 속성을 ObservableCollection에 바인딩 할 수 있습니다. 그런 다음 ItemsControl.ItemsTemplate을 사용하여 항목의 속성을 Canvas.Left (Right) 속성에 바인딩하여 절대 배치 할 수 있습니다.

+0

하지만 EditingMode.Selection을 사용하여 InkCanvas의 하위 항목을 선택할 수는 없습니다. 읽기 전용 인 경우 적절한 솔루션이지만 일반적인 InkCanvas 솔루션은 아닙니다. –