重命名文件时重命名XAML文件类的更好方法?

时间:2017-11-14 14:44:58

标签: c# wpf xaml

编辑:重命名文件时的主要问题是重命名xaml内容

我的直觉是尖叫,有更好的方法来做到这一点,但以下的工作,我的问题是看看是否有更好的或已经存在的方法可以做到这一点

我有一个小型WPF应用程序,可以加载xaml文件,可以导入/编辑和导出。 当WPF应用程序初始化时,它会生成一个可以编辑的占位符xaml文件, 导出时“StartingXamlFile.xaml”我使用了XamlFile,用户可以更改名称。但是XAML文件的内容不会根据文件名更改。此外,在导入现有XAML文件时,编辑和导出(导出时更改名称)会发生同样的事情。

解决方案:

我设置了一个Singleton对象来保存带有属性内容和路径的文件名 SaveFileDialog dlg = new SaveFileDialog(); dlg.FileName = "StartingXamlFile"; // Default file name dlg.DefaultExt = ".xaml"; // Default file extension dlg.Filter = "xaml files (*.xaml)|*.xaml|All files (*.*)|*.*"; // Filter files by extension // Show save file dialog box var result = dlg.ShowDialog(); if (result == true) { File.WriteAllText(dlg.FileName, editedContent); } 。现在,当替换导入时,默认设置为“StartingXamlFile”。这是在Gang of four Singleton technique

之后完成的

无法正常工作的SaveFile代码:

Replace

使用if (result == true) { var name = Path.GetFileNameWithoutExtension(dlg.FileName); var testing = XamlFile.Content.Replace(XamlFile.Path,name); File.WriteAllText(dlg.FileName, testing); } 保存可以正常工作的文件代码:

strWhere = "[Holiday] >= " & Format(startDate,"\#mm\/dd\/yyyy\#")

1 个答案:

答案 0 :(得分:2)

只是为了给这个问题一个公认的答案,我还没有找到一个比这更好的方法:

SaveFileDialog dlg = new SaveFileDialog();
            dlg.FileName = "StartingXamlFile"; // Default file name
            dlg.DefaultExt = ".xaml"; // Default file extension
            dlg.Filter = "xaml files (*.xaml)|*.xaml|All files (*.*)|*.*"; 

            // Show save file dialog box
            var result = dlg.ShowDialog();
            if (result == true)
            {
        //X:Class replacement is done here
               var name = Path.GetFileNameWithoutExtension(dlg.FileName);
               var testing = XamlFile.Content.Replace(XamlFile.Path,name); 
               File.WriteAllText(dlg.FileName, testing);
            }

XamlFile是一个包含xaml内容的单例对象 启动或导入时的文件的初始名称,因此在导出时 替换所有对初始名称的引用