我在WPF控件中有一个数据绑定列表框。我想要的只是所选索引的文本。如果我使用SelectedItem.ToString我会得到密钥和文本。如果我使用SelectedValue.ToString我只会得到密钥。

一些论坛建议进行如下铸造,但这似乎不起作用。

InputName nameInput = new InputName((ListBoxItem)LbContractors.SelectedItem.ToString()));


这就是我绑定控件的方式。那是搞砸了吗?

LbContractors.ItemsSource = myDictionary;
LbContractors.SelectedValuePath = "Key";
LbContractors.DisplayMemberPath = "Value";

最佳答案

这应该可以解决问题。

(LbContractors.SelectedItem as ListBoxItem).Content.ToString();


更新

或尝试这样做。转换为Nullable KeyValuePair并获取值。

var kvp = (KeyValuePair<string, object>?) LbContractors.SelectedItem);
if(kvp != null && kvp.Value != null) {
    string selectedText = kvp.Value.ToString();
}


与空检查的一行:)

string selectedText = ((KeyValuePair<string, object>?) LbContractors.SelectedItem)?.Value?.ToString();

10-08 01:50