如何将字符串列表与8个字符的键相关联?

时间:2014-03-14 20:21:07

标签: c# wpf json string combobox

我在WPF表单上有ComboBoxTextBox。我的代码背后是C#。 ComboBox包含的字符串与用户输入TextBox的电子邮件地址类型相对应。

我希望字符串对应8个字符键,这些字符键将序列化为Json,用户输入的电子邮件地址作为值。

我唯一能想到的就是

if this.ComboBox.SelectedItem == "Some String"
JsonObject thingToSerialize = new JsonObject(){key = 'smestrng', value = TextBox.Text}

我真的想将List<string>绑定到ComboBox项,并将这些字符串与8个字符键相关联。我可以写几行搜索列表,查找字符串,然后获取相应的8个字符键。

我希望我不要过于复杂。我可以使用一堆if语句一起破解一些东西,但我确信我会在8个月内讨厌自己,因为我意识到我必须扩展它并完全重写它。我不确定是否会有三个或四个按键或75个按键。

1 个答案:

答案 0 :(得分:1)

编写WPF时,始终最能正确构建数据。我的意思是,如果你想要一个与某种键相关联的电子邮件地址,那么创建一个具有两个属性的简单类; EmailAddressKey。当然,您可能还想添加更多属性,例如Name等。

然后,您可以将这些类实例的集合数据绑定到ComboBox.ItemsSource属性,并设置DisplayMemberPath属性以显示EmailAddress属性值,同时仍包含其他值。最后,添加名为SelectedItem的类类型的属性,并将数据绑定到ComboBox.SelectedItem属性:

<ComboBox ItemsSource="{Binding YourCollection}" DisplayMemberPath="EmailAddress" 
    SelectedItem="{Binding SelectedItem}" />

然后你可以这样做:

JsonObject thingToSerialize = new JsonObject() { key = SelectedItem.Key, value = 
    SelectedItem.EmailAddress };