0

だから私は Dictionarr を持っていて、これを ListView にバインドしました...

        this.dbMessages = new Dictionary<string,string>( dbMessages );
        this.dbPathStr = @"C:\DATABASEROOT\" + databaseName;
        this.dbNameStr = databaseName.Remove(databaseName.LastIndexOf("."));

        dbName.Text = dbNameStr;
        dbPort.Text = "0000";
        msgList.ItemsSource = dbMessages;
        msgList.DisplayMemberPath = "Key";
        msgList.SelectedValuePath = "Value";

ユーザーが値を選択して追加ボタンを押すと、キーと値をフォーム上の他の情報と共に抽出して、カスタム クラス オブジェクトを作成する必要があります。

問題はキーです....

classObject(string key, string value, string otherinfo) //this is the constructor

ペアを提供するselectedItem.tostringだけでキーにアクセスしようとしましたが、実際には文字列操作にはなりたくありません。

私はそれを辞書にキャストしようとしましたが、明らかに一度キャストすると、一般的な辞書にキャストすることはできません....

4

1 に答える 1

3

ペアが得られたらSelectedItem、それをキャストしてキーにアクセスします。

var pair = (KeyValuePair<string, string>)msgList.SelectedItem;
var obj = new classObject(pair.Key, pair.Value, otherInfo);
于 2013-10-21T13:21:31.293 に答える