Як зв’язати метод об’єктів у цьому сценарії у 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
дерева.
EDIT Прив’язка до an ObjectDataProvider
, здається, не працює, оскільки я прив’язую до списку елементів і ObjectDataProvider
потребую або статичного методу, або він створює власний екземпляр і використовує це.
Наприклад, використовуючи відповідь Метта, я отримую:
Помилка System.Windows.Data: 33: ObjectDataProvider не може створити об'єкт; Тип = 'RootObject'; Помилка = 'Неправильні параметри конструктора.'
Помилка System.Windows.Data: 34: ObjectDataProvider: Помилка спроби викликати метод типу; Метод = 'GetChildren'; Тип = 'RootObject'; Помилка = 'Зазначеного члена не можна викликати на ціль.' TargetException: 'System.Reflection.TargetException: Нестатичний метод вимагає цілі.