आप इस परिदृश्य में 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>
यहाँ मैं पेड़ से प्रत्येक RootObject
पर GetChildren
विधि से आबद्ध करना चाहते हैं।
संपादित एक ObjectDataProvider
लिए बाइंडिंग काम करने के लिए है क्योंकि मैं ObjectDataProvider
जरूरतों मदों की एक सूची है, और या तो एक स्थिर विधि के लिए बाध्य कर रहा हूँ नहीं लगता है, या यह खुद उदाहरण है और उस का उपयोग करता है बनाता है।
उदाहरण के लिए, मैट के जवाब का उपयोग कर रहा है:
System.Windows.Data Error: 33 : ObjectDataProvider cannot create object; Type='RootObject'; Error='Wrong parameters for constructor.'
System.Windows.Data Error: 34 : ObjectDataProvider: Failure trying to invoke method on type; Method='GetChildren'; Type='RootObject'; Error='The specified member cannot be invoked on target.' TargetException:'System.Reflection.TargetException: Non-static method requires a target.
हाँ, आप सही हैं। ऑब्जेक्टडाटाप्रोवाइडर में ऑब्जेक्ट इंस्टेंस संपत्ति है (एक विशिष्ट उदाहरण पर इसकी विधि को कॉल करने के लिए) लेकिन मुझे नहीं लगता कि यह एक निर्भरता संपत्ति है, इसलिए आप इसे बाध्य नहीं कर सकते (AFAIK)। –
हाँ मैंने ऑब्जेक्ट इंस्टेंस को बांधने की कोशिश की और पाया कि यह एक निर्भरता संपत्ति नहीं है। –
मैं आपका उत्तर कुछ संदर्भ देने के लिए वैसे भी अपना उत्तर छोड़ दूंगा और किसी और की मदद करने के लिए जो इस प्रश्न को एक समान समस्या के साथ पाता है। –