C# 需要将键绑定到列表C中的值#

C# 需要将键绑定到列表C中的值#,c#,wcf,C#,Wcf,更新:只需要从字典返回一个键,字典由web服务创建,并传递回我的WPF程序,然后将字典填充到包含以下值的下拉列表中 IT_ED IT_FS IT_BUS 分配的关键点如下所示 Key Value [1] IT_ED [2] IT_FS [3] IT_BUS 我需要值中的键,根据下拉菜单中选择的项目 我用来存放钥匙的字典 private Dictionary<int, string> _DivisionDict = new Dictionary<int, string>

更新:只需要从字典返回一个键,字典由web服务创建,并传递回我的WPF程序,然后将字典填充到包含以下值的下拉列表中

IT_ED
IT_FS
IT_BUS

分配的关键点如下所示

Key Value
[1] IT_ED
[2] IT_FS
[3] IT_BUS
我需要值中的键,根据下拉菜单中选择的项目

我用来存放钥匙的字典

private Dictionary<int, string> _DivisionDict = new Dictionary<int, string>();

private Dictionary<int, string> DivisionDict
{
    get { return _DivisionDict; }
    set { _DivisionDict = value; }
}
好的,现在(问题)好多了,
因此,如果我做对了,您希望从WPF下拉列表中的选定项(即组合框)中获取“索引”

首先,最简单的方法是通过视图模型进行适当的数据“绑定”

ItemsSource="{Binding YourDictionaryProperty}" 
SelectedItem="{Binding Path=YourDictionarySelectedItem, Mode=TwoWay, NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged}"  
DisplayMemberPath="Value"
  • 通过视图模型类公开词典。像一个财产 你确实创造了
  • 将视图模型作为组合框(或父对象等)的数据上下文
  • 用于绑定的两个属性(
    YourDictionarySelectedItem
    YourDictionaryProperty
    )都是视图模型中的属性。一个是按原样公开字典,另一个是KeyValuePair…SelectedItem。仅供参考
  • 像上面那样做
…然后在视图模型中的
YourDicitonarySelecteItem
中,您将拥有字典中的KeyValuePair。从中你可以知道索引和值

或者,
brute force
可以通过LINQ等方式在字典中查找所选值(如果您根据当前设置的方式将其作为“输出”)

Divisions.Where(d=>d.Value == "selected value").FirstOrDefault();  
…这将为您提供“配对”,并从中获取

希望这次我们成功了:),干杯

编辑:正确的字典绑定不在原始范围内,因此它是一个快速修复解决方案。如果您需要“从后面”更新字典,则需要使用一些可观察的集合,或者在整个字典的项发生更改时对其强制OnPropertyChanged。请参阅此链接,以了解有关此方面的更多具体信息,

这就是你想要的吗?这很有帮助,但P仍然没有返回键谢谢你的答案和建议,但这似乎不起作用,我使用字典的方法,因为它是在web服务中处理的。你说的真的没有意义:)你需要缩小规模,给我们一个具体的例子,尽可能小我更新了我的问题,希望它现在更有意义,谢谢你把“钥匙”还给我?您是否需要division.key(或用于查询),或者您不知道如何包装web服务?我需要division dictionary中与所选项匹配的键
Divisions.Where(d=>d.Value == "selected value").FirstOrDefault();