大作业杂谈

关于第二,三,四的四个实验,对于我这种新技能get很慢的人来说,写起来真的有点吃力。过两天就要交了,我也只是写完了WPF,应用商店和windowsphone都是进行到中间的数据库部分就卡在那里了。(关于我为什么不用sqlite,我只想说,按着网上和其他同学的教程走,到我这里总是缺少引用集,分明添加了引用,目标框架也改过了,就是不行我也真没辙),然后就先写一些目前我搞懂的东西吧。

1.linq to xml

在wpf中,我使用了xml文件来存储用户所录入的数据,当然就要学习如何对xml文件的读写,增删查改了。于是万能的百度有一次给了我答案,http://blog.csdn.net/dyllove98/article/details/8708323 这篇文章中很详细的讲了用不同的方法操作xml文件(很详细),下面我就我用到的东西,总结一下:

1)xdocument

xdocument用以操作xml文档,与xmldocument基本相同,(但我在.net 4.5上,linq to xml 只能用xdocument。。。)

要用这个首先要using system.xml.linq; 然后就可以设变量了~~

 1             XDocument xdoc = XDocument.Load("tems.xml");
 2             XElement xroot = new XElement("root");
 3             XElement xitem = new XElement("item");
 4             XElement xname = new XElement("name");
 5             XElement xdate = new XElement("date");
 6             XElement xlast = new XElement("last");
 7             XElement ximportance = new XElement("importance");
 8
 9             xname.Value = item.Name;
10             xdate.Value = item.Date;
11             xlast.Value = item.LastDay;
12             ximportance.Value = item.Importance;
13             xitem.Add(xname, xdate, xlast, ximportance);
14             xroot.Add(xitem);
15             xdoc.Add(xroot);
16             xdoc.Save("items.xml");

这样就会在bin的debug下创建一个“item.xml"的文件,然后把item的各种属性信息录入(item是我自己建的一个用以表示用户录入信息的一个类),最后保存。要注意:xDocument.save(string)不能用于应用商店应用,(这也是一度困扰我的问题,最后只要把文件路径的字符串换成流就好了)。

(原博中作者给出了三种写入xml文件的简便方法,我写的这个是最笨的。。。)

2)一些操作

然后是:插入,删除,查找(均为原博得例子)

插入:

1 XElement i = xDoc.Root.Element("FlyInfo").Element("Seat"); //父节点(FlyInfo)下的子节点(Seat)
2
3             //这里给父亲添加个儿子(在末尾添加的) 在之前添加用:AddBeforeSelf
4             i.AddAfterSelf(
5                  new XElement("Info","详细信息") //这里Info没有儿子。也就是Info节点没有子节点
6                 );
7
8             xDoc.Save("tableDemo.xml");

删除:

 1  //当汤姆退学。需删除元素(课桌)
 2             var E18 = from item in xDoc.Descendants("Student")
 3                       where item.Element("name").Value.Equals("汤姆")  //找到汤姆这个学生
 4                       select item;
 5
 6             //删除满足条件的节点(同学),最后只剩下id=2和id=3的节点(学生) 以下三句效果相同
 7             E18.Remove();
 8             //E8.ToList().ForEach(it => it.Element("name").Parent.Remove());
 9             //E8.ToList().ForEach(it => it.Element("age").Parent.Remove());
10             xDoc.Save(Console.Out);

修改:

1      //当发现学生Id=1的学生姓名不能是英文。需修改成中文
2             var E7 = from item in xDoc.Descendants("Student")
3                      where item.Attribute("Id").Value.Equals("1")
4                      select item;
5
6             //找到name元素,修改value。同理。修改age一样。。扩展:SetAttributeValue(name,value)添加属性
7             E7.ToList().ForEach(it => it.Element("name").SetValue("汤姆"));
8             xDoc.Save(Console.Out);

关于具体的内容可以参照上面给的链接,我就是一步步照里面做的。

2.listview的datatemplate

DataTemplate顾名思义,就是数据模板,用来指定数据的表现形式。因为我的应用是做一个日程的天数倒计时提醒,所以需要一条条添加数据,这里就需要用到模板了。下面是我创建的xml 代码:

 1 <ListView.ItemTemplate>
 2                 <DataTemplate>
 3                     <Grid>
 4                         <Grid.ColumnDefinitions>
 5                             <ColumnDefinition Width="{StaticResource col1_width}"/>
 6                             <ColumnDefinition Width="{StaticResource col2_width}"/>
 7                             <ColumnDefinition Width="{StaticResource col3_width}"/>
 8                             <ColumnDefinition Width="{StaticResource col4_width}"/>
 9
10
11                         </Grid.ColumnDefinitions>
12                         <Grid.Resources>
13                             <Style TargetType="TextBlock">
14                                 <Setter Property="FontFamily" Value="宋体"/>
15                                 <Setter Property="FontSize" Value="25"/>
16                             </Style>
17                         </Grid.Resources>
18                         <TextBlock x:Name="t1" Grid.Column="0" Text="{Binding Path= Name}" FontFamily="Global User Interface"/>
19                         <TextBlock x:Name="t2" Grid.Column="1" Text="{Binding Path= Date}"/>
20                         <TextBlock x:Name="t3" Grid.Column="2" Text="{Binding Path= LastDay}"/>
21                         <TextBlock x:Name="t4" Grid.Column="3" Text="{Binding Path= Importance}" FontFamily="Global User Interface"/>
22
23
24
25                     </Grid>
26                 </DataTemplate>
27             </ListView.ItemTemplate>

呃,代码比较乱,其实我就是想说:template就是把每行的格式固定住了,用户不能自己拖拽表格边框,所有的宽度和高度都是确定好的,不能被改变。

It‘s too late at night! 就先写到这里,希望deadline之前能够尽快解决好数据库的问题。(c#虐我千百遍,我待c#如初恋 = =!)

时间: 2024-10-12 19:41:30

大作业杂谈的相关文章

《Java语言程序设计》大作业报告 九宫格游戏

    <Java语言程序设计>大作业报告     中国石油大学(北京)2015 - 2016 学年第二学期     班级:_____计算机14-1_______ 姓名:_____  许 恺_________________ 学号:______2014011329___________     题意分析 程序首先需要九个可以移动的格子,大小相等,有字符串标示,其次要可以相应鼠标和键盘方向键的控制,可以自由移动,并且与此同时记录步数,最后在满足条件时弹出对话框并显示步数以及是否打破记录,关于打破

数据库大作业--由python+flask

这个是项目一来是数据库大作业,另一方面也算是再对falsk和python熟悉下,好久不用会忘很快. 界面相比上一个项目好看很多,不过因为时间紧加上只有我一个人写,所以有很多地方逻辑写的比较繁琐,如果是想学习flask还是推荐之前的项目,地址:http://www.cnblogs.com/INnoVationv2/p/5837495.html 寒假回去我会重构下代码,然后再po出来. 不知道怎么做数据库大作业的也可以参考: 所有功能: 三类用户模式: 一.管理员 1.查看所有档案 2.修改档案信息

机电传动控制大作业第一阶段

机电传动控制大作业第一阶段 一.系统硬件接口定义 系统硬件可分为显示部分.按键输入部分和运动控制部分. 显示部分包括每个楼层的电梯外的楼层显示LED和上下楼指示箭头.电梯内的楼层显示LED和上下楼箭头,LED显示如果用七段共阴数码管则每个LED需要七个继电器来控制显示字符,上下楼箭头每个需要两个继电器IO进行控制,而控制它们的信号源则来自每层楼的行程开关,共七个开关进行输入. 按键输入部分为电梯内和楼层中,电梯内七个常开触点输入楼层,两个常开触点控制开关门,同时需要点亮楼层按键上的指示灯,则需要

DIP大作业---图像分割

数字图像处理课程的大作业,要求如下: 图像分割就是把图像分成若干个特定的.具有独特性质的区域并提出感兴趣目标的技术和过程.它是由图像处理到图像分析的关键步骤.现有的图像分割方法主要分以下几类:基于阈值的分割方法.基于区域的分割方法.基于边缘的分割方法以及基于特定理论的分割方法等.图像分割后提取出的目标可以用于图像语义识别,图像搜索等等领域.要求1:输入一副真彩色RGB图像dog.jpg,完成对小狗的分割,输入结果为只包含小狗区域的二值图(matlab环境下,小狗区域值为1,其他区域值为0).要求

不是所有的大作业都叫微信抢票大作业

为时四周的微信抢票大作业终于接近尾声,回首这段时间,真是感慨万千.不是所有的大作业都是微信抢票大作业,能够让人同时体验产品经理.开发工程师.测试工程师.运维工程师四个角色.经过了微信抢票大作业的洗礼,才知道之前对老师上课讲的内容只是一知半解,只有实践才能出真知. 一.搞开发 讲道理,这次大作业的开发工作其实不是很多.因为框架设计的很好,接口也介绍的很详细,只需要按部就班填坑就可以达到基本要求了. 但是既然助教上课都提到了几个优化方案,比如内存型数据库,异步队列等,好奇如我怎能不试呢.于是就开始给

机电传动控制大作业 第一阶段

机电传动控制大作业 第一阶段 一.系统硬件接口定义 1.电梯内操作界面: 标有1-7数字的按钮(每个按钮有一个LED灯,按下按钮灯即亮),开门,关门以及紧急报警的按钮和楼层指示的LED数码管.电梯门的打开和关闭需要两个行程开关,接收到开关门的信息可以直接控制门的开关. 2.楼栋操作界面: 2-6层有上行和下行按钮,1层只有上行,7层只有下行.每个按钮都连接一个LED灯(按下按钮灯即亮).两个LED数码管显示所在的楼层. 3.动力相关硬件: 每部电梯配有一台交流异步变频电机和变频器,电机接口接电机

并行计算大作业之多边形相交(OpenMP、MPI、Java、Windows)

***************************************转载请注明出处:http://blog.csdn.net/lttree******************************************** 吐槽: 话说,相当郁闷,2015年,第一次打开博客,准备总结一下这一年.. 结果博客被封了= =! 今天,终于解封了,换了密码,换了密保.... 但是,写回顾的激情有点退散了.. 明后两天要上课,明天还要验收一个综合设计大作业,再后两天要考试,再后两天继续上课,

深度学习与自然语言处理(4)_斯坦福cs224d 大作业测验1与解答

深度学习与自然语言处理(4)_斯坦福cs224d 大作业测验1与解答 作业内容翻译:@胡杨([email protected]) && @胥可([email protected]) 解答与编排:寒小阳 && 龙心尘 时间:2016年6月 出处: http://blog.csdn.net/han_xiaoyang/article/details/51760923 http://blog.csdn.net/longxinchen_ml/article/details/51765

数据库终期大作业报告

需求分析 现代社会,心血管疾病成为了老年人群体中高发的慢性病,一个社区医生往往需要负责多位患者的诊断工作,如果每位患者都要频繁上门问诊,会给医生带来过大的工作压力,也很难顾及到全部患者. 在信息技术高度普及的当下,完全可以利用互联网思维解决问题,制作一个软件用于实现: l  医生随时掌握所负责病人的血压数据,并为病人提供专业诊断意见. l  病人随时上传血压数据,并从医生处获得治疗意见. 概要设计 1.数据库 数据存放在名为dochelper的MySQL数据库中. 数据库包含4张表:doctor