2009-09-07 8 views
13

में किसी भी आइटम के लिए ऑन एक्सपेन्डेड ईवेंट मैं अपने वृक्षदृश्य में वृक्षदृश्य के किसी भी विस्तार के लिए एक कार्यक्रम प्राप्त करना चाहता हूं।ट्रीव्यू

इस का कारण, मूल प्रश्न के लिए एक सा असंबंधित: मैं एक पेड़ है कि एक xml फ़ाइल पेड़ को बारीकी से संबंधित है बनाने हूँ, लेकिन मैं एक xml में तत्व शामिल तो पेड़ से अधिक फ़ाइलों के पार जा सकते हैं अनुमति देता है कर रहा हूँ । मैं विस्तार पर अपने वृक्षदृश्य के भीतर Treeviewitems की आइटम्ससोर्स संपत्ति सेट करना चाहता हूं। ,

<TreeView TreeViewItem.Expanded="TreeViewItem_Expanded" 
      ItemsSource="{Binding}"> 
    ... 
</TreeView/> 

में कोड-पीछे आप TreeViewItem कि OriginalSource संपत्ति का उपयोग कर घटना की पहल की पहचान कर सकते हैं:

उत्तर

27

आप एक संलग्न घटना के रूप में TreeViewItem.Expanded घटना का उपयोग कर सकते

private void TreeViewItem_Expanded(object sender, RoutedEventArgs e) 
    { 
     TreeViewItem tvi = e.OriginalSource as TreeViewItem; 
     if (tvi != null) 
     { 
      MessageBox.Show(string.Format("TreeNode '{0}' was expanded", tvi.Header)); 
     } 
    } 
+0

अगर आप मतलब दृश्य वंश, आप उन्हें TreeViewItem –

+0

के आइटम्सकंटनर जेनरेटर के माध्यम से प्राप्त कर सकते हैं यह बहुत उपयोगी था, धन्यवाद, मुझे आपकी इच्छा देने का इनाम था। अंतिम सारांश: दृश्य वंश जो मैं चाहता था अभी तक विस्तारित घटना के दौरान नहीं बनाया गया था। विस्तार कार्यक्रम में मैंने मूल स्रोत को सहेजा, फिर बाध्यकारी के लिए एक मनमाने ढंग से कनवर्टर विधि में, मुझे VisualContainerGenerator.ContainerFromIndex (i) के साथ विज़ुअल वंशज मिला और आइटम्ससोर्स को अपडेट किया। –

संबंधित मुद्दे