0

ユーザーがデータ ポイントで構成される複数のテキスト ファイルをロードできるアプリケーションがあります。これらのファイルをロードすると、それぞれに対して生成されたチェックボックスが有効になっているノードがあります。次に、選択された各ファイルが「DynoFile」クラスのインスタンスになり、そのすべてがリストに格納されます。ノードのチェックボックスを「DynoFile」クラスの特定のインスタンスにバインドする方法はありますか (ノードと DynoFile クラスのインスタンスは同じ名前を共有します)。私の以前の方法は、すべてのチェックボックスを実行し、チェックされているものの名​​前をリスト内の DynoFile インスタンスの名前と比較することでした。チェックボックスイベントで対応する DynoFile クラスのパラメーターを変更する方法が必要だと思います。

以下はこれまでの私のコードです。

  List<DynoFile> AllRuns = new List<DynoFile>();
    private void button1_Click(object sender, EventArgs e)
    {
        TreeNode RunGroup = new TreeNode();
        RunGroup.Text = GroupName.Text;
        RunGroup.Name = GroupName.Text;
        treeView1.Nodes.Add(RunGroup);

        OpenFileDialog dlg = new OpenFileDialog();
        dlg.Filter = "Text files (*.txt)|*.txt";
        dlg.FilterIndex = 0;
        dlg.Multiselect = true;
        dlg.RestoreDirectory = true;
        dlg.Title = "Read .txt Log File";
        if (dlg.ShowDialog() == DialogResult.OK)
        {
            BuildTree(RunGroup,dlg.FileNames);
            BuildRuns(GroupName.Text, dlg.FileNames);
        }
    } // Load the File names into an array

    public void BuildTree(TreeNode RunGroup, String[] FileNames)
    {
        foreach (String file in FileNames)
        {
            TreeNode run = new TreeNode();
            run.Name = Path.GetFileName(file);
            run.Text = Path.GetFileName(file);
            RunGroup.Nodes.Add(run);
        }
    } // Parse the array and construct the tree of nodes

    public void BuildRuns(String GroupName, String[] FileNames)
    {
        foreach (String file in FileNames)
        {
            DynoFile element = new DynoFile(Path.GetFileName(file), GroupName);
            AllRuns.Add(element);
        }

    }
4

2 に答える 2

0

チェックボックスで「OnDataBinding」メソッドを使用すると、このようなことができます。チェックボックスを作成するときは、参照しているノード / DynoFile を知るためにチェックボックスを認識できるようにする一意の ID を指定します (ノード位置の ID など)。実際に名前を比較しているコードを教えていただければ、さらにお手伝いできます

于 2013-06-06T17:34:55.420 に答える