C# WPF列表视图操作

C# WPF列表视图操作,c#,wpf,listview,C#,Wpf,Listview,最近,我问了一个问题 对此的回应,以及我发现的关于此主题的几乎所有其他文章基本上都说总是将列表视图绑定到数据源,并对其进行操作。我找不到任何地方能说明原因?因为这样做更容易、更干净 Winform应用程序是事件驱动的。您必须处理各种控制事件,并在代码隐藏中写入事件。因此,程序员负责初始化控件/小部件、处理更改以及将更改写回底层存储。这会导致并且通常会导致大量逻辑嵌入到GUI中。因此,不通过GUI就很难测试应用程序 WPF已经改变了这一点。WPF的数据绑定支持确保您的UI更新并与它所呈现的域对象同

最近,我问了一个问题


对此的回应,以及我发现的关于此主题的几乎所有其他文章基本上都说总是将列表视图绑定到数据源,并对其进行操作。我找不到任何地方能说明原因?

因为这样做更容易、更干净

Winform应用程序是事件驱动的。您必须处理各种控制事件,并在代码隐藏中写入事件。因此,程序员负责初始化控件/小部件、处理更改以及将更改写回底层存储。这会导致并且通常会导致大量逻辑嵌入到GUI中。因此,不通过GUI就很难测试应用程序

WPF已经改变了这一点。WPF的数据绑定支持确保您的UI更新并与它所呈现的域对象同步。因此,您可以通过添加来修改基础集合,绑定的UI将接受此更改并自行更新。因此,UI和底层数据源/存储之间的连接现在以声明方式处理,无需编写代码。现在,您可以完全关注底层域对象。另外,编写自动化测试也是非常愉快的


在我看来,一旦你掌握了窍门,你往往会更有效率,生产出更清洁的设计。查看Josh Smith关于使用WPF的MVVM的msdn文章,因为它可以更容易、更干净地使用

Winform应用程序是事件驱动的。您必须处理各种控制事件,并在代码隐藏中写入事件。因此,程序员负责初始化控件/小部件、处理更改以及将更改写回底层存储。这会导致并且通常会导致大量逻辑嵌入到GUI中。因此,不通过GUI就很难测试应用程序

WPF已经改变了这一点。WPF的数据绑定支持确保您的UI更新并与它所呈现的域对象同步。因此,您可以通过添加来修改基础集合,绑定的UI将接受此更改并自行更新。因此,UI和底层数据源/存储之间的连接现在以声明方式处理,无需编写代码。现在,您可以完全关注底层域对象。另外,编写自动化测试也是非常愉快的

在我看来,一旦你掌握了窍门,你往往会更有效率,生产出更清洁的设计。查看Josh Smith关于使用WPF的MVVM的msdn文章