首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >绑定到WPF中的方法?

绑定到WPF中的方法?
EN

Stack Overflow用户
提问于 2009-02-02 05:16:27
回答 7查看 96.2K关注 0票数 91

在这种情况下,如何在WPF中绑定到对象方法?

代码语言:javascript
运行
复制
public class RootObject
{
    public string Name { get; }

    public ObservableCollection<ChildObject> GetChildren() {...}
}

public class ChildObject
{
    public string Name { get; }
}

XAML:

代码语言:javascript
运行
复制
<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:非静态方法需要目标。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/502250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档