2012-10-16 68 views
1

我一直試圖做很久沒有成功。從WPF中的GridView中檢索字典值

我想在WPF中的GridView中存儲字典。我能夠存儲鍵/值,但無法獲取特定鍵的值。例如,在下面的示例中,我想要檢索鍵「1」(即「4」)的值。 TryGetValue尚未成功。

這是我的代碼:

public MainWindow() 
     { 
      InitializeComponent(); 
      McDataGrid.ItemsSource = files.Keys; 
     } 

Dictionary<Files, string> files = new Dictionary<Files, string>(); 

public class Files 
{ 
    public string File { get; set; } 
    public string Duration { get; set; } 
    public string Status { get; set; }    
} 

private void AddFilesList(string addsrc, string addduration, string addstatus, string path) 
     { 
      files.Add(new Files 
      { 
       File = addsrc, 
       Duration = addduration, 
       Status = addstatus 

      }, path 
       ); 

      DataGrid.Items.Refresh(); 
     } 

private void Button_Click_1(object sender, RoutedEventArgs e) 
     { 
      AddFilesList("1", "2", "3", "4"); 
     } 

回答

0

試試這個代碼

foreach (KeyValuePair<Files, string> pair in files) 
    { 
     if (pair.Key.File == "1") 
     { 
      pair.Value// This will be return 4 
     } 
    } 
+0

@ user1751280:你可以檢查我的代碼。試試看,告訴我,它是否適合你? – jams

+0

這工作,真棒果醬謝謝! :) – Omid

0
private void OnDataGridSelectionChanged(object sender, RoutedEventArgs e) 
    { 
     var value = files[DataGrid.SelectedItem]; 
    } 
+0

我想獲得的價值沒有被選擇的對象。你的解決方案也給我編譯錯誤:「非靜態字段,方法或屬性'System.Windows.Controls.Primitives.Selector.SelectedItem.get'」需要對象引用。 – Omid

+0

您的解決方案不起作用。編譯錯誤:無法從'object'轉換爲'WpfApplication7.MainWindow.Files'。 – Omid

+0

var value = files [(Files)DataGrid.SelectedItem]; –