2011-10-29 14 views
0

私はクラスクライアント、クラス割り当て、および静的クラスを持っています。静的リストを持つクライアント。 Clientクラスのコンストラクタは、Assignmentオブジェクトを受け取ります。クライアントと割り当てオブジェクトが作成されると、クライアントは静的リストに追加されます。C#リストボックスの選択肢からテキストボックス内の特定のオブジェクトアイテムを表示する

私の問題は、ユーザーがリストボックス内のクライアントを選択して、割り当て説明の値をテキストボックスに表示する必要がある場合です。どうすればいいのですか?「Rimu.Client」と入力すると「System.String」という型のオブジェクトをキャストすることができません。

private void clientListBox_MouseClick(object sender, MouseEventArgs e) 
{ 
    if (clientListBox.SelectedItem != null) 
    { 
     Client current = (Client)clientListBox.SelectedItem; 
     current.CurrentAssignment.Description = descriptionText.Text; 
    } 
} 

お手数をおかけしますようお願い申し上げます。

答えて

0

あなたがリストボックスから直接のSelectedItemをキャストしたいので、そのようにあなたは、リストボックスに直接追加する必要があります。

foreach (var client in Clients) 
{ 
    clientListBox.Add(client); 
} 

今すぐClientオブジェクトがリストボックスに格納されているが、文字列が表示されました(またはあなたが指定しなかったwpfアプリ)は、ユーザにとってあまり意味のないクラス名になります。 ClientクラスのこのToStringメソッドをオーバーライドする()メソッド返信用

public class Client 
{ 
    // you've already written this 

    public override string ToString() 
    { 
    // construct a meaningful string here 
    return string.Format("{0} {1}", this.FirstName, this.LastName); 
    } 
} 
+0

感謝を修正するには

:) – Ari

0

私はあなたのクライアントオブジェクトを辞書に保存します。ディクショナリの各項目のキーは、ListBoxに入れている名前です。

次に、ListBox内の項目を選択すると、オブジェクトを辞書から取得できます。

文字列を任意のオブジェクトにキャストできないため、エラーが発生しています。

関連する問題