C# WPF xml序列化 反序列化
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using System.Windows.Navigation;
- using System.Windows.Shapes;
- using System.Xml.Serialization;
- using System.IO;
- namespace Test
- {
- /// <summary>
- /// Interaction logic for MainWindow.xaml
- /// </summary>
- public partial class MainWindow : Window
- {
- public MainWindow()
- {
- InitializeComponent();
- Loaded += new RoutedEventHandler(MainWindow_Loaded);
- dataGrid1.DataContext = list;
- // dataGrid1.ItemsSource = list;
- }
- List<msgitem> list = new List<msgitem>();
- void MainWindow_Loaded(object sender, RoutedEventArgs e)
- {
- loadMsgItems();
- }
- void loadMsgItems() {
- dataGrid1.ItemsSource = null;
- list = (List<msgitem>)LoadFromXml("d:\\1.xml", list.GetType());
- dataGrid1.ItemsSource = list;
- // list.Add(new msgitem() { isSelect=false, msg="test ..d第三方第三方?、工业投入也太容易>/....." });
- // list.Add(new msgitem() { isSelect = true, msg = "test .d第三方第三方?、工业投入也太容&&***//222......." });
- // dataGrid1.ItemsSource = null ;
- // dataGrid1.ItemsSource = list;
- }
- private void button1_Click(object sender, RoutedEventArgs e)
- {
- SaveToXml("d:\\1.xml", list);
- dataGrid1.ItemsSource = null;
- list = (List<msgitem>)LoadFromXml("d:\\1.xml", list.GetType());
- dataGrid1.ItemsSource = list;
- }
- void SaveToXml(string filePath, object sourceObj )
- {
- if (!string.IsNullOrWhiteSpace(filePath) && sourceObj != null)
- {
- using (StreamWriter writer = new StreamWriter(filePath))
- {
- System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(sourceObj.GetType());
- XmlSerializerNamespaces nameSpace = new XmlSerializerNamespaces();
- nameSpace.Add("", ""); //not ot output the default namespace
- xmlSerializer.Serialize(writer, sourceObj, nameSpace);
- }
- }
- }
- object LoadFromXml(string filePath, Type type)
- {
- object result = null;
- if (File.Exists(filePath))
- {
- using (StreamReader reader = new StreamReader(filePath))
- {
- System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(type);
- result = xmlSerializer.Deserialize(reader);
- }
- }
- return result;
- }
- private void CheckBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
- {
- }
- }
- }
UI:
- <Window x:Class="Test.MainWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- Title="MainWindow" Height="350" Width="525">
- <Grid>
- <Grid Height="215" Margin="23,96,0,0" Name="grid1" VerticalAlignment="Top">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="321*" />
- <ColumnDefinition Width="130*" />
- </Grid.ColumnDefinitions>
- <ListBox SelectionMode="Single" Margin="6" Name="dataGrid1" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Disabled" >
- <ListBox.ItemTemplate>
- <DataTemplate>
- <CheckBox MouseDoubleClick="CheckBox_MouseDoubleClick" Content="{Binding msg}" Width="444" IsChecked="{Binding isSelect}" />
- </DataTemplate>
- </ListBox.ItemTemplate>
- </ListBox>
- </Grid>
- <Button Content="Button" Height="31" HorizontalAlignment="Left" Margin="28,59,0,0" Name="button1" VerticalAlignment="Top" Width="149" Click="button1_Click" />
- </Grid>
- </Window>
C# WPF xml序列化 反序列化的更多相关文章
- C# Json库 和 xml 序列化反序列化 存在的问题
json 正常情况下不会对私有成员进行序列化和反序列化, 因此在用json做深拷贝时, 就会丢失数据. 解决办法: 声明成公有成员. json在序列化和反序列化时, 如果类中有IComma ...
- C# XML序列化/反序列化参考
.NET提供了很不错的XML序列化/反序列化器,(它们所在的命名空间为System.Xml.Serialization)这是很方便的,下面对它的使用做一些总结,以供参考. 1,简单序列化 public ...
- php json与xml序列化/反序列化
在web开发中对象的序列化与反序列化经常使用,比较主流的有json格式与xml格式的序列化与反序列化,今天想写个jsop的小demo,结果发现不会使用php序列化,查了一下资料,做个笔记 简单数组js ...
- XML序列化反序列化—常用类
public class XMLSerializer { #region (public) xml序列化 /// <summary> /// ...
- C# 复杂格式多级深度XML序列化反序列化
default.xml 文件如下: <config><partnerships> <partnership name="Main_Listener" ...
- WPF XML序列化保存数据 支持Datagrid 显示/编辑/添加/删除数据
XML序列化保存数据 using System; using System.Collections.Generic; using System.Linq; using System.Text; usi ...
- C# XML序列化/反序列化类XmlSerializer使用示例
using System; using System.IO; using System.Text; using System.Xml; using System.Xml.Serialization; ...
- XML序列化反序列化
using System; using System.Collections.Generic; using System.IO; using System.Xml.Serialization; nam ...
- XML序列化/反序列化数据库形式保存和读取。
直接上码: 首先创建class1类 public class Class1 { public string name { get; set; } public int age { get; set; ...
随机推荐
- 用eclipse 搭建struts2环境
一,下载struts2对应的jar包,(http://struts.apache.org/download.cgi#struts2514.1),我一般下载struts2.3版本的 二,打开eclips ...
- vue-cil 中的配置分析
自己写过配置分析,但是看了这位同学的文章之后发现写的比我全和细,索性直接转载过来了. 转自http://www.cnblogs.com/libin-1/p/6596810.html
- VMware 创建VMware9虚拟机及设置详细教程
创建VMware9虚拟机及设置详细教程 by:授客 QQ:1033553122 1.点击Create a New Virtual Machine图标按钮,或者file->new virtual ...
- Java实现后缀表达式建立表达式树
概述 表达式树的特点:叶节点是操作数,其他节点为操作符.由于一般的操作符都是二元的,所以表达式树一般都是二叉树. 根据后缀表达式"ab+cde+**"建立一颗树 文字描述: 如同后 ...
- servlet和jsp页面过滤器Filter的作用及配置
刚刚有个朋友问我,Servlet的过滤器有什么作用? 现在发个帖子说明一下, 过滤器是一个对象,可以传输请求或修改响应.它可以在请求到达Servlet/JSP之前对其进行预处理, ...
- cuda中用cublas库做矩阵乘法
这里矩阵C=A*B,原始文档给的公式是C=alpha*A*B+beta*C,所以这里alpha=1,beta=0. 主要使用cublasSgemm这个函数,这个函数的第二个参数有三种类型,这里CUBL ...
- LeetCode 题解之Remove Duplicates from Sorted List II
1.题目描述 2.题目分析 链表的题,主要注意指针即可. 3.代码 ListNode* deleteDuplicates(ListNode* head) { if (head == NULL || h ...
- SQL SERVER 2012/ 2014 分页,用 OFFSET,FETCH NEXT改写ROW_NUMBER的用法(转)
写法: 假装有个表Shop,其中有一列ShopName,取100000到100050条数据. ROW_NUMBER 的写法 SELECT * FROM (SELECT ShopName , ROW_N ...
- C#中获取数组中相加和最接近或等于(<=)给定值的算法
, ,,,,,,,,, }; List<List<int>> mylist = new List<List<int>>(); int length = ...
- SQL SERVER中关于OR会导致索引扫描或全表扫描的浅析 (转载)
在SQL SERVER的查询语句中使用OR是否会导致不走索引查找(Index Seek)或索引失效(堆表走全表扫描 (Table Scan).聚集索引表走聚集索引扫描(Clustered Index ...