WPF基础练习:VS 2014下快速构建数据库交互程序

需积分: 19 0 下载量 67 浏览量 更新于2025-01-03 收藏 443KB RAR 举报
资源摘要信息:"WpfApp1.rar文件标题暗示了一个与WPF应用程序有关的练习项目,该文件的描述提供了关于项目的具体信息,涉及的技术栈以及项目要求。以下是对该描述中知识点的详细说明: 1. **WPF基础环境搭建**: - **开发环境**:Visual Studio 2014是微软公司开发的一个集成开发环境(IDE),用于开发Windows应用程序。文档指出,它是本练习项目的开发工具,因此开发者需要熟悉VS 2014的基本使用,包括界面布局、项目创建、调试等。 - **数据库环境**:本地SQL Server 2014。WPF应用程序可以与多种数据库进行交互,文档表明在本项目中将使用SQL Server 2014版本的数据库。开发者需要掌握数据库的基本概念、结构化查询语言(SQL)以及如何通过ADO.NET连接和操作数据库。 2. **WPF应用程序需求分析**: - **数据提取和展示**:项目要求从本地数据库或AdventureWorks数据库中的`person.contact`表提取数据,涉及到WPF的UI设计和数据绑定技术。`ListView`控件是WPF中常用的用于展示列表数据的控件,需要掌握如何将从数据库提取的数据绑定到`ListView`。 - **用户交互处理**:需要实现当用户通过鼠标或其它设备选中`ListView`中的某一条记录时,能够展示出该条记录的详细信息。这里涉及到了事件处理以及UI的动态更新,比如使用`DataTemplate`来定义详细信息的展示方式。 - **数据修改和更新**:修改`ListView`中的数据后,能够联动更新界面上显示的数据以及数据库中的相应记录。这要求开发者能够处理数据的双向绑定和事务更新,需要对WPF中的数据绑定机制有深入的理解。 3. **技术栈**: - **C#**:作为项目的核心编程语言,C#是.NET框架下广泛使用的语言。该项目中所有的逻辑处理、数据库交互等都需要用C#来编写。开发者需要对C#语言有良好的掌握,包括语法、面向对象编程、LINQ查询等。 - **ADO.NET**:虽然文档指出对ADO.NET不做详细介绍,但它是连接和操作数据库的基础技术之一。开发者需要了解ADO.NET的基本概念,如连接、命令、数据读取等,并知道如何在WPF应用程序中使用它来与数据库进行交互。 4. **其他知识点**: - **数据库知识**:至少需要了解数据库表结构设计、SQL语言基础以及如何使用SQL Server管理工具进行数据库操作。 - **WPF UI设计**:了解WPF框架的XAML语言,能够设计和实现用户界面,包括控件布局、样式、模板等。 - **事件驱动编程**:WPF应用是基于事件驱动的,因此需要对事件处理有深入理解,能够响应用户操作并作出相应处理。 - **MVVM设计模式**:在WPF应用中,为了实现良好的架构和代码解耦,推荐使用MVVM模式。开发者应当了解该模式的原理和实现方式。 总之,WpfApp1.rar文件描述了一个WPF应用程序的练手项目,涉及到了诸多技术点,包括WPF开发环境的搭建、与数据库的交互、UI设计和交互处理、事件驱动编程、以及C#编程能力等。该练习项目是WPF入门者快速提升实践能力的良好资源。"
2021-03-04 上传
273 浏览量
  第一步:项目名称上右键->添加->新建项->窗口(WPF),该窗口为打印预览窗口。在其xaml文件中我们加入DocumentViewer容器,将固定文档放入该容器中则可实现打印预览 <DocumentViewer Name="docViewer"></DocumentViewer>     第二步:项目名称上右键->添加->新建项->流文档(WPF),该文档用以写入打印样式和内容,其实它长什么样后面打印出来的大概也就长什么样。     第三步:在主窗体中用按钮或者别的方式打开打印预览窗体(在初始化该窗体时将要打印的内容更改好) PrintPreviewWindow previewWnd = new PrintPreviewWindow("FlowDocument.xaml");//在这里我们将FlowDocument.xaml这个页面传进去,之后通过打印预览窗口的构造函数填充打印内容,如果有数据要插入应该在此传数据结构进去 previewWnd.Owner = this; previewWnd.ShowInTaskbar = false;//设置预览窗体在最小化时不要出现在任务栏中 previewWnd.ShowDialog();//显示打印预览窗体     第四步:从上面第三步我们知道打印内容的更新实际上是打印预览窗口的构造函数中完成的,所以我们在其构造函数中要实现流文档从xaml文件的加载,然后将其转为固定文档,然后将该文档放入到DocumentViewer容器中。这里总的打印预览窗口类代码如下: public partial class PrintPreviewWindow : Window { private delegate void LoadXpsMethod();//委托事件,相当于函数指针 private readonly FlowDocument m_doc;//流文档 public PrintPreviewWindow(string strTmplName)//从上面得到待打印的文档 { InitializeComponent(); m_doc = (FlowDocument)Application.LoadComponent(new Uri(strTmplName, UriKind.RelativeOrAbsolute));//从xaml文件中加载流文档对象 m_doc.PagePadding = new Thickness(50);//设置页面与页面之间的边距宽度 Dispatcher.BeginInvoke(new LoadXpsMethod(LoadXps), DispatcherPriority.ApplicationIdle);//“延后”调用,不然刚刚更改的数据不会马上更新,也就是说打印或者预览不到更新后的数据 } public void LoadXps() { //构造一个基于内存的xps document MemoryStream ms = new MemoryStream(); Package package = Package.Open(ms, FileMode.Create, FileAccess.ReadWrite); Uri DocumentUri = new Uri("pack://InMemoryDocument.xps"); PackageStore.RemovePackage(DocumentUri); PackageStore.AddPackage(DocumentUri, package); XpsDocument xpsDocument = new XpsDocument(package, CompressionOption.Fast, DocumentUri.AbsoluteUri); //将flow document写入基于内存的xps document中去 XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(xpsDocument);//在这里需要添加对.NET 4.0 的一些应用,比较蛋疼 writer.Write(((IDocumentPaginatorSource)m_doc).DocumentPaginator); //获取这个基于内存的xps document的fixed documen docViewer.Document = xpsDocument.GetFixedDocumentSequence(); //关闭基于内存的xps document xpsDocument.Close(); } }     到此,编译完成程序在主窗口触发打开打印预览窗口,则可以看到第二步创建的流文档以预览的方式呈现在窗口上。 ———————————————— 版权声明:本文为CSDN博主「_寒潭雁影」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixinhum/article/details/49800841