使用MVVM和WCF的WPF TreeView绑定
我目前正在使用MVVM模式开发一个WPF应用程序。视图、模型、视图模型都位于单独的类库中 我的视图有一个TreeView控件,应该使用数据绑定来填充它 我从通过模型访问的WCF服务获取数据。我的模型有一个引用WCF服务的服务,并从WCF调用一个方法来检索嵌套集合 ViewModel使数据可用于视图。除了在树视图中显示数据外,检索数据等都可以正常工作 我的TreeView的XAML如下所示使用MVVM和WCF的WPF TreeView绑定,wpf,wcf,data-binding,mvvm,treeview,Wpf,Wcf,Data Binding,Mvvm,Treeview,我目前正在使用MVVM模式开发一个WPF应用程序。视图、模型、视图模型都位于单独的类库中 我的视图有一个TreeView控件,应该使用数据绑定来填充它 我从通过模型访问的WCF服务获取数据。我的模型有一个引用WCF服务的服务,并从WCF调用一个方法来检索嵌套集合 ViewModel使数据可用于视图。除了在树视图中显示数据外,检索数据等都可以正常工作 我的TreeView的XAML如下所示 <TreeView Grid.Row="1" ItemsSource="{Binding Custom
<TreeView Grid.Row="1" ItemsSource="{Binding CustomerTree}" >
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type ....}" ItemsSource="{Binding Path=Children}">
<TextBlock Text="{Binding Path=Name}"/>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type ....}" ItemsSource="{Binding Path=Children}">
<TextBlock Text="{Binding Path=ID}"/>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
DataType=“{x:Type….}属性需要某个类型,该类型应该是嵌套集合中的类型之一,但视图不知道哪些类型可用。我的ViewModel可以使用model.ServiceReference.customer访问服务引用在模型中的类型,例如客户类型
模型是添加服务引用的正确位置吗?我应该如何使我的树状视图显示数据
谢谢
Grant为了达到所需的抽象级别,您将不得不给自己带来一些不便。解决此问题需要多个步骤:
数据类型
(改用x:Key
)。这就是造成不便的原因:模板将不再自动应用。但从好的方面来说,您只是去掉了对特定类型名称的引用TreeView
上的ItemTemplate
或ItemTemplateSelector
属性为每个项目手动选择HierarchicalDataTemplate
最终的结果是,您将能够选择所需的模板,而无需引用XAML中的特定类型,而是使用数据绑定对象上的属性。谢谢。我将在明天进行尝试。我遵循了本教程。现在我更清楚了。