EDIT:主な問題のファイルの名前を変更すると、XAMLコンテンツの名前を変更することであるファイルの名前を変更するときに、XAMLファイルクラスの名前を変更するより良い方法はありますか?
私の直感がこれを行うには良い方法があることを叫んでますが、次の作品をされたときに、私の質問が良いかどうかを確認することですこれを可能にする既存の方法
xamlファイルを読み込み、読み込み/編集して書き出すことができる小さなWPFアプリケーションがあります。 WPFアプリケーションの初期化時に、編集可能なプレースホルダxamlファイルが作成されます。 「StartingXamlFile.xaml」をエクスポートするときにSaveFileDialog
を使用し、ユーザーが名前を変更できます。ただし、XAMLファイルの内容はファイル名に応じて変更されません。また、既存のXAMLファイルをインポートするときに、編集とエクスポート(エクスポート時に名前の変更)が同じことが発生します。
ソリューション:
私は、プロパティの内容とパスとファイル名XamlFile
を保持するために、シングルトンオブジェクトを設定します。これをインポートすると、デフォルトは "StartingXamlFile"に設定されます。
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);
}
Replace
を使用して作業を行う
保存ファイルのコード::これは仕事をdoesntのGang of four Singleton technique
SAVEFILEコード次に行われるだけでこの質問に受け入れられた答えを与えるために
if (result == true)
{
var name = Path.GetFileNameWithoutExtension(dlg.FileName);
var testing = XamlFile.Content.Replace(XamlFile.Path,name);
File.WriteAllText(dlg.FileName, testing);
}
'File.Copy()'と 'へのすべての参照を置き換えFile.Delete() 'は少しオーバーヘッドですばやくそこにあなたを連れて行きます。 –
@Sinatr ..これはファイル名だけの内容の名前を変更しません。 XAMLファイルを保持するx:ファイル名を参照するクラス値 – JohnChris
@JohnChris XAMLファイルの名前を変更する方法を尋ねていないので、XAMLファイルでクラスの名前を変更する方法を尋ねているので質問のタイトルを更新したいファイルの名前を変更します。 – Lithium