2012-04-12 15 views
0

更新:只需要從字典中返回一個鍵,該字典是由Web服務創建的,並傳回到我的程序中,這是一個WPF,字典是然後填充到包含下列值需要將一個鍵綁定到列表中的某個值C#

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; } 
} 

繼承人我如何填充我的下拉菜單,用鑰匙

foreach (var D in Divisions) 
{ 
    txtY.Items.Add(D.Value); 
    DivisionDict.Add(D.Key, D.Value); 
} 
+0

這是你所追求的? HTTP://計算器。com/questions/255341 /獲取鍵值的通用字典#255630 – roken 2012-04-12 13:26:33

+0

這有幫助,但P仍然沒有返回鍵 – 2012-04-12 13:32:42

回答

1

好字典,那最好不過了,現在(的問題),
所以,如果我把它弄對了,你想從WPF下拉列表中選擇的項目中獲得一個'索引'(即組合框)。

首先,最簡單的是通過你的視圖模型做一個適當的數據「綁定」,

ItemsSource="{Binding YourDictionaryProperty}" 
SelectedItem="{Binding Path=YourDictionarySelectedItem, Mode=TwoWay, NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged}" 
DisplayMemberPath="Value" 
  • 暴露你的字典通過視圖模型類。像 你沒有創建一個屬性,
  • 放視圖模型作爲組合框(或父母等),您的數據上下文,
  • 用於綁定(YourDictionarySelectedItemYourDictionaryProperty)這兩個屬性是在您的視圖模型屬性。一個暴露Dictionary'原樣',另一個是KeyValuePair ... SelectedItem。僅供參考,
  • 像做上述...

...然後在YourDicitonarySelecteItem在您的視圖模型 - 你會從字典中有KeyValuePair。從中你可以知道指數和價值。

或者brute force可以通過例如查找所選值(如果你有那種作爲'輸出'的基於你當前如何設置的東西)。 LINQ像這樣...

Divisions.Where(d=>d.Value == "selected value").FirstOrDefault(); 

...這會給你的「對」,並從走Key

希望我們釘牢這一次:),歡呼聲

編輯:正確的字典結合是不是在原來的範圍,使這是一個快速修復方案。如果您需要更新字典'後面',您需要使用一些可觀察的集合 - 或者在其全部字典中的項目更改時強制使用OnPropertyChanged。看到這個鏈接的更多具體信息,
Two Way Data Binding With a Dictionary in WPF

+0

感謝您的答案,並建議,但似乎並沒有工作,我使用該方法的字典,因爲它在網絡服務處理 – 2012-04-12 14:02:28

+0

它真的沒有任何意義,你說什麼:)你需要縮小東西,給我們一個具體的例子,儘可能小 – NSGaga 2012-04-12 14:06:36

+0

我更新了我的問題,希望它現在更有意義,謝謝 – 2012-04-12 14:24:35

相關問題