WinForms 응용 프로그램에서 WPF 상호 운용성을 사용하고 있습니다. 다음과 같은 설정을했습니다.WinForms의 Interop WPF, WPF 컨트롤의 이벤트 처리 방법
- 윈폼 UserControl을 WFControl
- WPF UserControl을 GalleryControl
- 리스트 박스 GalleryItems
- 리스트 박스 ItemTemplate을 GalleryItem
- 리스트 박스 GalleryItems
- WPF UserControl을 GalleryControl
GalleryContem을 호스팅하는 Winforms에는 GalleryItem의 ItemTemplate이있는 GalleryItems (ListBox)가 있습니다.
이제 WFControl에서 GalleryItems에있는 시간을 확인하고 싶습니다. SelectionChanged
이벤트가 발생했습니다. GalleryControl에 인 selectionchanged 이벤트를 처리하고 내 윈폼 읽을 수있는 별도의 공개 이벤트를 발생이
하지만 이후 나는 그와 같은 이벤트를 처리 할 수 없습니다
나의 현재 시도
는에 시도 라우트 된 이벤트가 아닙니다. 만약 내가 어떻게 처리 할 수있는이 작동합니다. 적용 코드 :public event ClaimGallery SelectedClaimChanged; public ViewModels.InsuranceClaimViewModel ClaimViewModel { get; set; } public int SelectedClaimID { get { return ((Models.InsuranceClaim) ClaimList.SelectedItem).ID; } } public ClaimGallery() { InitializeComponent(); ClaimViewModel = new ViewModels.InsuranceClaimViewModel(); DataContext = ClaimViewModel; ClaimList.ItemsSource = ClaimViewModel.InsuranceClaims; ClaimList.SelectionChanged += ClaimSelectionChanged; } private void ClaimSelectionChanged(object sender, EventArgs e) { //This is the part that doesn't work ClaimList.RaiseEvent(new RoutedEventArgs(SelectedClaimChanged, this)); }
나는 또한 내가 잠재적으로는 WFControl의 실제 이벤트에 가입 탐색 일부 컨트롤 트리를 통해 목록 상자를 찾을 수 있지만 내가 할 방법을 알아낼 수없는 것 것을 본 적이 이것 interop'd 통제에서.
I를
당신이 "+ ="이 일을 처리하는 데 사용하는 라우트 된 이벤트 아니에요 이후이 같은 이벤트를 처리 할 수 없습니다 winItems의 GalleryItems.SelectionChanged에 접근 할 수 없다. – msarchet