私はWPFアプリを開発していますが、システムからロードし、コンボボックスからファイルを取得してLoadメソッドを呼び出すスクリプトファイル(.xml)操作のロードに遭遇しました。
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 ステートメントの近くにブレークポイントを配置すると、選択後にコンボボックスにファイルのパスが表示されます。
また、このファイルを取得して 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");
}
C++ コードで FILE を perameter として渡していますが、ここでは文字列を渡しています。xml ファイルの読み取り中に問題が発生しますか?