| UI/Test/FunctionSetting.xaml.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| UI/Test/ProgramList.xaml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| UI/Test/ProgramList.xaml.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| UI/Test/SequnceList.xaml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Utils/XmlUtil.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| WPFProject.csproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| test.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
UI/Test/FunctionSetting.xaml.cs
@@ -15,6 +15,7 @@ using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Xml.Serialization; using WPFProject.Models; using WPFProject.Utils; @@ -45,7 +46,6 @@ { DataContext = this; InitializeComponent(); } public DdDragHandler dragHandler { get; set; } = new DdDragHandler(); @@ -74,6 +74,5 @@ get { return _FuncModels; } set => RaiseAndSetIfChanged(ref _FuncModels, value); } } } UI/Test/ProgramList.xaml
@@ -24,10 +24,7 @@ <Grid> <ListView ItemsSource="{Binding Programs}" ItemContainerStyle="{StaticResource a}" VerticalContentAlignment="Center" dd:DragDrop.IsDragSource="True" dd:DragDrop.IsDropTarget="True" dd:DragDrop.ShowAlwaysDropTargetAdorner="True" dd:DragDrop.UseDefaultDragAdorner="True" SelectionChanged="ListView_SelectionChanged"> <ListView.ItemTemplate> <DataTemplate> UI/Test/ProgramList.xaml.cs
@@ -1,9 +1,12 @@ using System; using System.Collections.ObjectModel; using System.ComponentModel; using System.IO; using System.Runtime.CompilerServices; using System.Windows.Controls; using System.Xml.Serialization; using WPFProject.Models; using WPFProject.Utils; namespace WPFProject.UI.Test { @@ -73,10 +76,17 @@ private void ListView_SelectionChanged(object sender, SelectionChangedEventArgs e) { ttt(); if (e.AddedItems.Count > 0) { ProgramChanged?.Invoke(this, e.AddedItems[0] as Program); } } public void ttt() { string path = "X:\\vs\\WPFProject\\test.xml"; XmlUtil.SerialToFile(Programs, path); } } } UI/Test/SequnceList.xaml
@@ -145,7 +145,6 @@ <Setter Property="hc:BorderElement.CornerRadius" Value="0" /> <Setter Property="RowHeight" Value="30"/> </Style> </ResourceDictionary> </UserControl.Resources> Utils/XmlUtil.cs
New file @@ -0,0 +1,41 @@ using System; using System.IO; using System.Xml.Serialization; namespace WPFProject.Utils { public class XmlUtil { /// <summary> /// 将对象序列化到Xml文件中 /// </summary> /// <param name="data">对象</param> /// <param name="filePath">xml路径</param> public static void SerialToFile(object data, string filePath) { XmlSerializer serializer = new XmlSerializer(data.GetType()); string content = string.Empty; //serialize using (StringWriter writer = new StringWriter()) { serializer.Serialize(writer, data); content = writer.ToString(); } //save to file using (StreamWriter stream_writer = new StreamWriter(filePath)) { stream_writer.Write(content); } } public static T DeserialFromXml<T>(string filePath) { XmlSerializer serializer = new XmlSerializer(typeof(T)); using (StreamReader reader = new StreamReader(filePath)) { return (T) serializer.Deserialize(reader); } } } } WPFProject.csproj
@@ -167,6 +167,7 @@ <Compile Include="Utils\IPlugin.cs" /> <Compile Include="Utils\Resize.cs" /> <Compile Include="Utils\Win32Helper.cs" /> <Compile Include="Utils\XmlUtil.cs" /> <Compile Include="ViewModels\ProgramListViewModel.cs" /> <Page Include="Controls\InnerWindow.xaml"> <SubType>Designer</SubType> test.xml
New file @@ -0,0 +1,57 @@ <?xml version="1.0" encoding="utf-16"?> <ArrayOfProgram xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Program> <Name>123</Name> <Sequences> <Sequence> <Name>S123</Name> <Steps> <Step> <Name>000</Name> </Step> <Step> <Name>111</Name> </Step> </Steps> </Sequence> <Sequence> <Name>S223</Name> <Steps> <Step> <Name>000</Name> </Step> <Step> <Name>111</Name> </Step> </Steps> </Sequence> </Sequences> </Program> <Program> <Name>223</Name> <Sequences> <Sequence> <Name>D123</Name> <Steps> <Step> <Name>000</Name> </Step> <Step> <Name>111</Name> </Step> </Steps> </Sequence> <Sequence> <Name>D223</Name> <Steps> <Step> <Name>000</Name> </Step> <Step> <Name>111</Name> </Step> </Steps> </Sequence> </Sequences> </Program> </ArrayOfProgram>