2009-07-07 12 views
6

मेरे डब्ल्यूपीएफ आवेदन में, मेरे पास एक वृक्षदृश्य है। यह वृक्षदृश्य कस्टम वर्ग (यानी TreeviewItems) से जुड़ा हुआ है। इसलिए मैं पेड़ प्रस्तुत करने के तरीके को नियंत्रित करने के लिए एक पदानुक्रमित डेटा टेम्पलेट का उपयोग करता हूं।डब्ल्यूपीएफ में, मैं माउस कर्सर के नीचे ट्री व्यू आइटम से जुड़े डेटा ऑब्जेक्ट को कैसे प्राप्त करूं?

जब मेरा माउस पेड़ दृश्य आइटम पर है, तो मैं पेड़ दृश्य आइटम से संबंधित डेटा ऑब्जेक्ट (यानी मेरा कस्टम क्लास इंस्टेंस) प्राप्त करना चाहता हूं। मैं यह कैसे करु?

स्पष्टीकरण के लिए - मुझे माउस कर्सर के नीचे डेटा ऑब्जेक्ट (UIElement नहीं) की आवश्यकता है।

मान लें डेटा वस्तु पुनः प्राप्त करने के लिए अपने विधि निम्नलिखित हस्ताक्षर हैं:

private object GetObjectDataFromPoint(ItemsControl source, Point point) 
{ 
    ... 
} 

उत्तर

5

कुछ इस (untested) की तरह:

private object GetObjectDataFromPoint(ItemsControl source, Point point) 
{ 
    //translate screen point to be relative to ItemsControl 
    point = _itemsControl.TranslatePoint(point); 
    //find the item at that point 
    var item = _itemsControl.InputHitTest(point) as FrameworkElement; 

    return item.DataContext; 
} 
+0

बढ़िया, कि मैं वास्तव में क्या ढूंढ रहा था। धन्यवाद केंट! – willem

2
private object GetObjectDataFromPoint(ItemsControl source, Point point) 
{  
    //translate screen point to be relative to ItemsControl  
    point = source.TranslatePoint(point, source);  

    //find the item at that point  
    var item = source.InputHitTest(point) as FrameworkElement; 

    return item.DataContext; 
} 
संबंधित मुद्दे