2013-02-22 25 views
5

Bir butona tıklama (popup.IsOpen = true;) bir Popup görüntüleniyor. Açılır pencerede bir ComboBox bulunur ve açılan kutuda bir öğeyi tıklattığımda, SelectionChanged olayının yaptığı şeylerden biri de pencereyi gizlemek olur.Garip bir sorun - açılan pencerede fare tıklamasıyla kontrol altında yakalanıyor

Popup, sayfamda da bulunan bir DataGrid üzerinde görünür ve ben de Combobox'ta fare tıklatmanın da DataGrid'de bulunan bir MouseUp olayı tarafından algılanmakta olduğunu buluyorum. Ne olduğuna dair bir fikrin var mı?

cevap

2

MouseUp Olayı, Bubbling türünde bir yönlendirme stratejisine sahiptir. Bu tür bir stratejiyi kullanan etkinlikler zinciri üst denetimlere geçirir. Popup, DataGrid'un bir alt öğesi olduğundan, olay DataGrid'a "kabarcık" atar. Etkinliği balonlaştırmak istemezseniz, Tunneling yönlendirme stratejisine sahip olan PreviewMouseUp'u kullanmayı deneyebilir ve zinciri alt öğelere "tünel ettirir". İşte bir overviewRouting Strategies.

+0

DataGrid'de hem MouseUp hem de PreviewMouseUp'ı denedim, ancak başarılı olmadı. Garip bir şekilde, pop-up da bir düğme içerir ve ben bununla bir sorun değil - sadece combobox'ı tıkladığınızda. –

+0

@AndrewStephens: Hmm, bu garip ... Kendi başıma biraz deney yaptım ve DataGrid'in MouseUp'ı ComboBox'a tıklanmıyordu ... PreviewMouseUp olayı ateş ediyordu (başka biri olacağını düşünürdüm) etrafında yol). Bir öğe seçildiğinde açılır pencereyi de gizledim. Bu yüzden sorunu yeniden oluşturamıyorum ... bazı kodlar göndermekle ilgileniyor musunuz? – Mash

İlgili konular