我正在開發一個WPF應用程序,我剛剛遇到加載腳本文件(.xml)操作,我應該從系統加載它,從組合框中獲取文件並調用Load方法。無法通過FileOpenDialog在WPF中加載腳本文件
的XAML:
<ComboBox Name="ScriptCombo" SelectedIndex="0" >
<ComboBoxItem Content="Select Aardvark Script" />
<ComboBoxItem Content="{Binding ScriptPath}" />
</ComboBox>
<Button Content="..." Command="{Binding Path=ScriptPathCommand}" Name="ScriptFileDialog" />
視圖模型:
private string _ScriptPath;
public string ScriptPath
{
get { return _ScriptPath; }
set
{
_ScriptPath = value;
NotifyPropertyChanged("ScriptPath");
}
}
// Method gets called when ... Button is clicked
private void ExecuteScriptFileDialog()
{
var dialog = new OpenFileDialog { InitialDirectory = _defaultPath };
dialog.DefaultExt = ".xml";
dialog.Filter = "XML Files (*.xml)|*.xml";
dialog.ShowDialog();
ScriptPath = dialog.FileName; //Stores the FileName in ScriptPath
}
這將打開一個文件對話框,讓我選擇一個.xml文件。在對話框打開時,它並不會顯示CurrentWorkingDirectory。如何才能實現?因此,選擇當我單擊打開並在ScriptPath statemnt附近放置斷點時,它會顯示我的組合框中文件的路徑。
另外我想獲取此文件並將其存儲在FILE類型中,因此調用LoadFile方法。我這樣做是在C++如下:
File file = m_selectScript->getCurrentFile(); //m_selectScript is combobox name
if(file.exists())
{
LoadAardvarkScript(file);
}
void LoadAardvarkScript(File file)
{
}
在WPF我不喜歡:
ScriptPath = dialog.FileName;
if (File.Exists(ScriptPath))
{
LoadAardvarkScript(ScriptPath);
}
}
public void LoadAardvarkScript(string ScriptPath)
{
MessageBox.Show("Start Reading File");
}
我傳遞FILE在C++ perameter代碼,並在這裏我傳遞一個字符串。它會在讀取XML文件時產生任何問題嗎?
謝謝:)我的第一個問題已被清除。對於第二個問題,請檢查我的更新代碼。這樣對嗎? – StonedJesus
我不知道,因爲我不知道'LoadAardvarkScript'應該做什麼。當然可以從其路徑中打開文件,然後處理其XML內容。 – Clemens
基本上'LoadAardvarkScript'方法分析XML文件並提取存儲在xml腳本中的標記名。那麼我現在會試試看看操作是否順利或不正確:)我正在標記這個答案是正確的,並會upvote太:)如果我面臨任何問題,生病下降評論。希望你能與我聯繫:) – StonedJesus