आप इस परिदृश्य में WPF में किसी ऑब्जेक्ट विधि से कैसे बंधते हैं?
public class RootObject
{
public string Name { get; }
public ObservableCollection<ChildObject> GetChildren() {...}
}
public class ChildObject
{
public string Name { get; }
}
XAML:
<TreeView ItemsSource="some list of RootObjects">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type data:RootObject}"
ItemsSource="???">
<TextBlock Text="{Binding Path=Name}" />
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type data:ChildObject}">
<TextBlock Text="{Binding Path=Name}" />
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
यहां मैं GetChildren
प्रत्येक RootObject
पेड़ पर विधि से बांधना चाहता हूं ।
EDIT बाइंडिंग ObjectDataProvider
काम नहीं करता है क्योंकि मैं वस्तुओं की एक सूची के लिए बाध्य हूं, और ObjectDataProvider
आवश्यकताओं को या तो एक स्थिर विधि है, या यह स्वयं का उदाहरण बनाता है और इसका उपयोग करता है।
उदाहरण के लिए, मैट के उत्तर का उपयोग कर मुझे मिलता है:
System.Windows.Data त्रुटि: 33: ObjectDataProvider ऑब्जेक्ट नहीं बना सकता है; Type = 'RootObject'; त्रुटि = 'निर्माता के लिए गलत मानदंड।'
System.Windows.Data त्रुटि: 34: ObjectDataProvider: प्रकार पर पद्धति को लागू करने की कोशिश में विफलता; विधि = 'GetChildren'; Type = 'RootObject'; त्रुटि = 'निर्दिष्ट सदस्य को लक्ष्य पर नहीं लगाया जा सकता है।' TargetException: 'System.Reflection.TargetException: गैर-स्थिर पद्धति के लिए लक्ष्य की आवश्यकता होती है।