相关疑难解决方法(0)

绑定到WPF中的方法?

如何在WPF中绑定到此场景中的对象方法?

public class RootObject
{
    public string Name { get; }

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

public class ChildObject
{
    public string Name { get; }
}
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

在这里,我想绑定到GetChildren每个RootObject树上的方法.

编辑绑定到一个ObjectDataProvider似乎不起作用,因为我绑定到一个项目列表,并且ObjectDataProvider需要一个静态方法,或者它创建它自己的实例并使用它.

例如,使用Matt的答案,我得到:

System.Windows.Data错误:33:ObjectDataProvider无法创建对象; 类型= 'RootObject'; Error ='构造函数的参数错误.'

System.Windows.Data错误:34:ObjectDataProvider:尝试在类型上调用方法失败; 方法= '的GetChildren'; 类型= 'RootObject'; Error ='无法在目标上调用指定的成员.TargetException:'System.Reflection.TargetException:非静态方法需要一个目标.

.net data-binding wpf xaml

87
推荐指数
4
解决办法
8万
查看次数

标签 统计

.net ×1

data-binding ×1

wpf ×1

xaml ×1