在这种情况下,如何在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>在这里,我想绑定到树的每个RootObject上的GetChildren方法。
编辑绑定到ObjectDataProvider的似乎不起作用,因为我绑定到一个项目列表,而ObjectDataProvider需要一个静态方法,或者它创建自己的实例并使用该方法。
例如,使用Matt的答案,我得到了:
System.Windows.Data错误: 33 : ObjectDataProvider无法创建对象;类型=‘根对象’;错误=‘构造函数的参数错误’。
System.Windows.Data错误: 34 : ObjectDataProvider:尝试调用类型上的方法失败;Method='GetChildren';Type='RootObject';Error=‘无法在目标上调用指定的成员。’TargetException:'System.Reflection.TargetException:非静态方法需要目标。
https://stackoverflow.com/questions/502250
复制相似问题