Как вы в 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
дереву.
РЕДАКТИРОВАТЬ Привязка к ObjectDataProvider
объекту, похоже, не работает, потому что я привязываюсь к списку элементов, и ObjectDataProvider
требуется либо статический метод, либо он создает собственный экземпляр и использует его.
Например, используя ответ Мэтта, я получаю:
System.Windows.Data Ошибка: 33: ObjectDataProvider не может создать объект; Тип = 'RootObject'; Ошибка = 'Неверные параметры для конструктора.'
System.Windows.Data Ошибка: 34: ObjectDataProvider: сбой при попытке вызвать метод для типа; Метод = 'GetChildren'; Тип = 'RootObject'; Error = 'Указанный член не может быть вызван на цели.' TargetException: 'System.Reflection.TargetException: нестатический метод требует цели.