/ / डब्ल्यूपीएफ ट्रीव्यूव - स्वचालित रूप से माता-पिता का विस्तार कैसे करें और नए नोड का चयन करें - सी #, डब्ल्यूपीएफ, ट्रीव्यूव, डाटामैप्लेट, पदानुक्रमितडेटमैप्लेट

डब्ल्यूपीएफ ट्रीव्यूव - स्वचालित रूप से माता-पिता का विस्तार कैसे करें और नए नोड का चयन करें - सी #, डब्ल्यूपीएफ, ट्रीव्यूव, डाटामैप्लेट, पदानुक्रमितडेटमैप्लेट

मेरे पास मॉडल ऑब्जेक्ट्स की तरह स्थापित है:

public class Model
{
public ObservableCollection<Model> Children{get;set;}
public string Name{get;set;}
}

यह मुझे मॉडल वस्तुओं का एक पेड़ देता हैमनमाना आकार और गहराई। मैं इन्हें एक पदानुक्रमित डेटामैप्लेट का उपयोग करके एक WPF TreeView में प्रदर्शित करता हूं। ObservableCollection की वजह से, मैं मॉडल पेड़ में कहीं भी मॉडल ऑब्जेक्ट्स जोड़ सकता हूं और यूआई तदनुसार अपडेट करेगा।

परेशानी आती है क्योंकि भले ही एक नया मॉडल ऑब्जेक्ट तीसरे स्तर पर जोड़ा जा सकता है, उदाहरण के लिए, यह तुरंत दिखाई नहीं दे सकता है।

जब एक नया मॉडल ऑब्जेक्ट कहीं भी जोड़ा जाता हैपेड़, मैं TreeView को स्वचालित रूप से नए नोड का चयन करना चाहता हूं, और अपने माता-पिता का विस्तार करना चाहता हूं कि यह तुरंत उपयोगकर्ता को दिखाई दे। यह तुरंत स्पष्ट प्रतीत नहीं होता है।

मैं जो नहीं करना चाहता हूं वह आदर्श वस्तुओं के साथ मॉडल ऑब्जेक्ट्स को प्रदूषित करता है जो केवल एक विशेष WPF नियंत्रण में समझ में आता है। न ही मैं मॉडल में मूल संपत्ति जोड़ना चाहता हूं।

ऐसा लगता है कि यह किसी के द्वारा पहले से निपटना होगा। क्या किसी को इस बात से निपटने का कोई विचार है?

उत्तर:

जवाब के लिए 0 № 1

नीचे के रूप में अपने मॉडल में 2 गुण बनाएँ Isxpanded और IsSelected है

और अपने वृक्षदृश्य में ItemContainerStyle नीचे सेटर्स जोड़ें

<Setter Property="IsSelected" Value="{Binding IsSelected}"/>
<Setter Property="IsExpanded" Value="{Binding IsExpanded}"/>

जब भी आप इन 2 गुणों को अपने व्यूमोडल्स में सेट करते हैं, तो संबंधित पेड़दृश्य का चयन / विस्तार किया जाएगा