¿Cómo se vincula a un método de objetos en este escenario en 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>
Aquí quiero vincularme al GetChildren
método en cada uno RootObject
de los árboles.
EDITAR La vinculación a un ObjectDataProvider
no parece funcionar porque estoy vinculando a una lista de elementos, y ObjectDataProvider
necesita un método estático o crea su propia instancia y la usa.
Por ejemplo, usando la respuesta de Matt obtengo:
Error de System.Windows.Data: 33: ObjectDataProvider no puede crear el objeto; Escriba = 'RootObject'; Error = 'Parámetros incorrectos para el constructor'.
Error de System.Windows.Data: 34: ObjectDataProvider: Error al intentar invocar el método en el tipo; Método = 'GetChildren'; Escriba = 'RootObject'; Error = 'El miembro especificado no se puede invocar en el destino'. TargetException: 'System.Reflection.TargetException: El método no estático requiere un objetivo.
fuente