0

私は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 ファイルの読み取り中に問題が発生しますか?

4

1 に答える 1

1

私はあなたの問題が何であるかを正確に理解していませんが、OpenFileDialogによって最初に表示されるディレクトリはそのプロパティによって設定されるため、変数InitialDirectoryに入れたものです。defaultPathこれは、たとえば、System.Environment.CurrentDirectoryプロパティの値である可能性があります。

質問の2番目の部分については、.NetにFileクラスがあります。

于 2012-10-10T12:00:48.683 に答える