Como você vincula a um método de objetos neste cenário no 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>
Aqui, desejo vincular ao GetChildren
método em cada uma RootObject
das árvores.
EDITAR Vincular a um ObjectDataProvider
não parece funcionar porque estou vinculando a uma lista de itens e ObjectDataProvider
precisa de um método estático ou cria sua própria instância e usa isso.
Por exemplo, usando a resposta de Matt, recebo:
Erro System.Windows.Data: 33: ObjectDataProvider não pode criar objeto; Tipo = 'RootObject'; Erro = 'Parâmetros errados para o construtor.'
Erro System.Windows.Data: 34: ObjectDataProvider: falha ao tentar invocar o método no tipo; Método = 'GetChildren'; Tipo = 'RootObject'; Erro = 'O membro especificado não pode ser chamado no destino.' TargetException: 'System.Reflection.TargetException: O método não estático requer um destino.