से जुड़ा हुआ है, मैं डब्ल्यूपीएफ में अपना पहला एमवीवीएम एप्लीकेशन बनाने में व्यस्त हूं।डब्ल्यूपीएफ: ट्री व्यूइटम एक आईसीओएमएंड
असल में मेरी समस्या यह है कि मेरे पास एक TreeView (System.Windows.Controls.TreeView) है जिसे मैंने अपनी WPF विंडो पर रखा है, मैंने फैसला किया है कि मैं CommandViewModel आइटम्स के ReadOnlyCollection से जुड़ जाऊंगा, और ये आइटम में डिस्प्लेस्ट्रिंग, टैग और रिले कॉमांड शामिल हैं।
अब एक्सएएमएल में, मेरे पास मेरा ट्री व्यू है और मैंने सफलतापूर्वक मेरे ReadOnlyCollection को बाध्य कर दिया है। मैं इसे देख सकता हूं और सब कुछ यूआई में ठीक दिखता है।
अब मुद्दा यह है कि मुझे रिलेकॉमैंड को ट्री व्यूइटम के कमान पर बांधने की ज़रूरत है, हालांकि मैं देख सकता हूं कि ट्री व्यूइटम के पास कमांड नहीं है। क्या यह मुझे IsSelected संपत्ति में या TreeView_SelectedItemChanged विधि के पीछे कोड में करने के लिए मजबूर करता है या क्या यह WPF में जादूगर रूप से ऐसा करने का कोई तरीका है?
इस कोड को मेरे पास है:
<TreeView BorderBrush="{x:Null}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<TreeView.Items>
<TreeViewItem
Header="New Commands"
ItemsSource="{Binding Commands}"
DisplayMemberPath="DisplayName"
IsExpanded="True">
</TreeViewItem>
</TreeView.Items>
और आदर्श मैं बस जाने के लिए प्यार होता है:
<TreeView BorderBrush="{x:Null}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<TreeView.Items>
<TreeViewItem
Header="New Trade"
ItemsSource="{Binding Commands}"
DisplayMemberPath="DisplayName"
IsExpanded="True"
Command="{Binding Path=Command}">
</TreeViewItem>
</TreeView.Items>
कोई एक समाधान है कि मुझे अनुमति देता है मेरे पास रिलेकॉमैंड इंफ्रास्ट्रक्चर का उपयोग करने के लिए।
धन्यवाद दोस्तों, बहुत सराहना की!
रिचर्ड
मुझे एएसपी.NET वृक्षदृश्य के साथ विश्वास है कि आप इस तरह की कार्यक्षमता जोड़ने के लिए TreeView और TreeViewItem का विस्तार कर सकते हैं। आप टीवीआई को अपनी जरूरतों को जोड़ने के लिए बदल देंगे और फिर अपने टीवीआई का एक नया उदाहरण बनाने के लिए टीवी में एक विधि को ओवरराइड करेंगे। मुझे नहीं पता कि डब्ल्यूपीएफ वृक्षदृश्य में एक ही पैटर्न उपलब्ध है या नहीं; मैंने जांच की लेकिन पूरी तरह से नहीं। – Will