wpf - 如何在 WPF/Silverlight 中设置页眉/行

标签 wpf silverlight xaml mvvm master-detail

您是否有在 WPF 或 Silverlight 中设置页眉/行表单(也称为页眉/详细信息)的最佳实践?最好使用 Mode-View-ViewModel 设计模式来适应我的应用程序的其余部分。

一个例子是,如果我有一个显示数据库中所有 SalesOrders 的网格,并且在该网格下方显示所选销售订单的所有 SalesOrderDetails(销售订单的各个行......每个售出的项目)顶部网格。

我意识到我可以在 Grid 的 SelectionChanged 事件的文件后面的代码中执行此操作,但我更喜欢这样做的声明性方式......在所有 XAML 和 ViewModel 代码中。这可能吗?

谢谢,
罗伊

最佳答案

对我来说,标题/行听起来很像 Master-Detail 模式。使用 MVVM 实现这样的事情非常简单。

如果我们要创建一个包含 MasterViewModel 和 DetailViewModel 的结构,那么在 MasterViewModel 中我们只需要一个属性来表示我们的详细信息列表和当前详细信息。在 View 中,我们可以将列表的 ItemSource 绑定(bind)到 Details 集合,并将 SelectedItem 绑定(bind)到 CurrentDetail 属性。然后,我们可以有一个单独的 View ,作为 DataTemplate 或 UserControl,它表示 CurrentDetail 并在详细信息网格中显示我们的值。

还有一些关于实现 Master Detail 模式 XAML 的好资源。

Bea Stollnitz 有两个使用 XML 作为数据源的优秀示例:HereHere .

有一个MSDN video关于在 WPF 中实现模式。 (视频是VB,但代码可以用C#下载)。

在这个 MSDN forums讨论 Johnny Q. 演示了一个使用 MVVM 的简单 Master-Detail 设置。

很多Karl Shifflett's示例也最终展示了主从模式,尽管代码通常在 VB 中(但有些示例同时带有 C# 和 VB 代码。)

关于wpf - 如何在 WPF/Silverlight 中设置页眉/行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/952040/

相关文章:

c# - 使用交互触发器调用可见性更改方法 WPF

c# - 如何将列表列表绑定(bind)到 View ?

wpf - 密码框上的样式触发器

c# - 背景不会改变按钮 C# WPF

c# - 在 XAML 中移动标签

wpf - 在WPF/Silverlight中使用HierarchicalDataTemplate的类似于文件系统的TreeView

silverlight - 在数据网格标题中绑定(bind)复选框

wpf - 如何将文本框数据绑定(bind)到 CodeBehind 中的属性

c# - WPF TextBox Extension无法使用MahApps TextBoxHelper

c# - ScaleTransform 有什么用?