0

これはとても基本的な質問だと思いますが、2日間かけてうまく機能させようとしましたが、うまくいきませんでした。お時間をいただきありがとうございます。

問題定義

  • Visual Studio Express 2012 - Visual C# Windows フォーム プロジェクト
  • クラスとメンバー
    • マイフォーム ( Form)
      • myListBox -ListBox
    • MyDataElement
      • ファーストネーム -string
      • 苗字 -string
    • MyDataManager
      • myDataList -List<MyDataElement>

GUI を使用して、どのようにバインドできmyListBoxますmyDataListか? より具体的には、リストの値が入力さMyDataManagerれるようにインスタンス化するにはどうすればよいですか?myListBox

すでに実行済みの手順

問題なく DataSource を作成できますが、ListBox に基になるリストの内容を表示させることができません。私が試してみました:

  • ListBox をスタンドアロンMyDataManagerオブジェクトにバインドする
  • MyFormタイプのメンバーを作成しMyDataManager、ListBox をそのメンバーにバインドする

どちらも機能しませんでした。また、DisplayMember プロパティを無駄に変更しようとしました。

myListBox.DataSource = myDM.myDataListちなみに、のメイン メソッドでDataSource (例: ) を手動で設定することで、適切に機能させることができますMyFormが、今後の参照と私自身の教育のために、GUI を使用してこれを行う方法を学びたいと思います (可能であれば)。 .

サンプルコード

public class MyDataElement
{
    public string firstName { get; set; }
    public string lastName { get; set; }

    public override string ToString()
    {
        return firstName + " " + lastName;
    }
}

public class MyDataManager
{
    public List<MyDataElement> myDataList { get; set; }
    
    // Constructor.
    public MyDataManager()
    {
        myDataList = new List<MyDataElement>();

        // Populate list for testing purposes.
        myDataList.Add(new MyDataElement { firstName = "John", lastName = "Smith" });
        myDataList.Add(new MyDataElement { firstName = "Jane", lastName = "Doe" });
    }
}

のメインメソッドではMyForm

// ...
myDM = new myDataManager();
InitializeComponents();
// ...

この順序を逆にしてみました。

4

1 に答える 1

0

リソースを使用してビューの DataContext を MyDataManager にバインドする必要があります (この場合、MyDataManager は ViewModel と見なされます)。これらのanwsersを参照してください。VS GUI は MyDataManager クラス メンバーを見つけることができます。それが役に立てば幸い

于 2013-01-28T16:05:34.977 に答える