Làm cách nào để bạn liên kết với một phương thức đối tượng trong trường hợp này trong 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>
Ở đây tôi muốn liên kết với GetChildren
phương thức trên mỗi RootObject
cây.
CHỈNH SỬA Việc liên kết với một ObjectDataProvider
dường như không hoạt động vì tôi đang ràng buộc với một danh sách các mục và ObjectDataProvider
cần một phương thức tĩnh hoặc nó tạo ra phiên bản riêng và sử dụng nó.
Ví dụ, sử dụng câu trả lời của Matt, tôi nhận được:
System.Windows.Data Error: 33: ObjectDataProvider không thể tạo đối tượng; Loại = 'RootObject'; Error = 'Các tham số sai cho hàm tạo.'
Lỗi System.Windows.Data: 34: ObjectDataProvider: Không thể gọi phương thức trên loại; Phương thức = 'GetChildren'; Loại = 'RootObject'; Error = 'Thành viên được chỉ định không thể được gọi vào target.' TargetException: 'System.Reflection.TargetException: Phương thức không tĩnh yêu cầu một mục tiêu.