0
[追加されましたForm1()
コンストラクタUPDATE]を動作するようには思えません。私は今まで何をやったかマッチング列挙型は
は次のようになります。
public Form1()
{
formatWorker.DoWork += worker_DoWork;
formatWorker.RunWorkerCompleted += worker_RunWorkerCompleted;
extractWorker.DoWork += extractWorker_DoWork;
extractWorker.ProgressChanged += extractWorker_ProgressChanged;
extractWorker.RunWorkerCompleted += extractWorker_RunWorkerCompleted;
InitializeComponent();
projectBox.DataSource = Constant.projects.ToString();
projectBox.SelectedIndex = (int)Regions.Project.NBTevo;
PopulateUsbDevices();
}
class Regions
{
public enum Project
{
NBT = 0,
NBTevo = 1,
MGU = 2
}
string[] regions = { "ARG", "AUSNZ", "ECE", "IND", "ISR", "LA", "ME", "NA", "NAF", "NANT", "PAL", "SEA", "TC", "ZA" };
public string[] GetRegionsForProject(Project proj)
{
//all directories from /Databases/proj[i]
string[] allDirectories = Constant.ExtractFileNames(Directory.GetDirectories(Constant.path + "//" + Constant.projects[(int)proj]));
string[] availableSubDirectories = Enumerable.Intersect(allDirectories, regions).ToArray();
return availableSubDirectories;
}
}
次のクラス店(このクラスは、enum Project
に応じて、私はコンボボックスに格納するいくつかのregion[]
値を、持っています)特定のパターンは、私がで選択した値に応じて、例えば、依存関係を構築しようとしています
class DBVersion
{
public string[] GetVersion(string proj, string region)
{
string pattern = "^" + proj + "_" + region + "_" + @"(\d+\.\d+\.\d+_[a-zA-Z0-9_]+)\.iso$";
string[] files = Directory.GetFiles(Constant.path + "\\" + proj + "\\" + region + "\\images\\", "*.iso", SearchOption.AllDirectories);
return files;
}
}
ファイルあなたが使用する必要がありますComboBox
にDataSource
をバインドしたい場合はとregionBox
いくつかのバージョンが実行した後versionBox
private void projectBox_SelectedIndexChanged(object sender, EventArgs e)
{
isoPaths.Clear();
populateRegions((Regions.Project)Enum.Parse(typeof(Regions.Project), projectBox.SelectedValue.ToString()));
regionBox.SelectedIndex = 0;
regionBox_SelectedIndexChanged(null, null);
}
private void regionBox_SelectedIndexChanged(object sender, EventArgs e)
{
string[] versionPaths = version.GetVersion(projectBox.SelectedValue.ToString(), regionBox.SelectedItem.ToString());
isoPaths.Clear();
isoPaths.AddRange(versionPaths);
populateVersions(Constant.ExtractFileNames(versionPaths));
//versionBox.SelectedIndex = 0;
//versionBox_SelectedIndexChanged(null, null);
}
private void versionBox_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void populateRegions(Regions.Project proj)
{
this.regionBox.DataSource = region.GetRegionsForProject(proj);
}
private void populateVersions(string[] versions)
{
this.versionBox.DataSource = version.GetVersion(
projectBox.SelectedItem.ToString(),
regionBox.SelectedItem.ToString());
}
に表示されます、私はComboBox
コンボボックスを配置したり、そのデータソースをバインドするコードはありません。私の目はちょうど疲れているかもしれません。 –
あなたは正しいです。 'ます。private void populateRegions(Regions.ProjectのPROJ) { this.regionBox.DataSource = region.GetRegionsForProject(PROJ):これは私が行う方法がわからないことですが、 –
不明であるために申し訳ありません私は2つのメソッドを持っています; } プライベートvoid populateVersions(string []バージョン) { this.versionBox.DataSource = version.GetVersion(projectBox.SelectedItem.ToString()、regionBox.SelectedItem.ToString()); } 'しかし、私はそれらを一緒に置くことができません –