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

本文关键字:字符 关联 8个 字符串 列表 | 更新日期: 2023-09-27 17:50:16

我在WPF表单上有一个ComboBox和一个TextBox。我的代码背后是在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个键。

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

在编写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 };