Come ci si lega a un metodo di oggetti in questo scenario in 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>
Qui voglio legarmi al GetChildrenmetodo su ciascuno RootObjectdegli alberi.
EDIT Binding a un ObjectDataProvidernon sembra il lavoro perché sto legame con un elenco di voci, e le ObjectDataProvideresigenze sia un metodo statico, o crea il proprio esempio e l'utilizza.
Ad esempio, usando la risposta di Matt ottengo:
System.Windows.Data Errore: 33: ObjectDataProvider non può creare l'oggetto; Type = 'RootObject'; Errore = "Parametri errati per il costruttore."
System.Windows.Data Errore: 34: ObjectDataProvider: errore durante il tentativo di richiamare il metodo sul tipo; Metodo = "GetChildren"; Type = 'RootObject'; Error = "Il membro specificato non può essere richiamato sulla destinazione." TargetException: 'System.Reflection.TargetException: il metodo non statico richiede una destinazione.