C# 需要将键绑定到列表C中的值#
更新:只需要从字典返回一个键,字典由web服务创建,并传递回我的WPF程序,然后将字典填充到包含以下值的下拉列表中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>
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
)都是视图模型中的属性。一个是按原样公开字典,另一个是KeyValuePair…SelectedItem。仅供参考YourDictionaryProperty
- 像上面那样做
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();