คุณผูกกับเมธอดอ็อบเจ็กต์ในสถานการณ์นี้ใน 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
ต้นไม้แต่ละต้น
แก้ไขการผูกกับ an ObjectDataProvider
ดูเหมือนจะไม่ได้ผลเพราะฉันเชื่อมโยงกับรายการของรายการและObjectDataProvider
ต้องการวิธีการแบบคงที่หรือสร้างอินสแตนซ์ของตัวเองและใช้สิ่งนั้น
ตัวอย่างเช่นการใช้คำตอบของ Matt ฉันได้รับ:
System.Windows.Data Error: 33: ObjectDataProvider ไม่สามารถสร้างวัตถุ พิมพ์ = 'RootObject'; ข้อผิดพลาด = 'พารามิเตอร์ไม่ถูกต้องสำหรับตัวสร้าง'
System.Windows.Data Error: 34: ObjectDataProvider: ความล้มเหลวในการพยายามเรียกใช้เมธอดในประเภท; วิธี = 'GetChildren'; พิมพ์ = 'RootObject'; ข้อผิดพลาด = 'ไม่สามารถเรียกสมาชิกที่ระบุในเป้าหมายได้' TargetException: 'System.Reflection.TargetException: วิธีการแบบไม่คงที่ต้องการเป้าหมาย