【问题标题】:Retrieve Dictionary value from GridView in WPF从 WPF 中的 GridView 检索字典值
【发布时间】:2012-10-16 21:17:35
【问题描述】:

我已经尝试了很长时间没有成功。

我正在尝试将字典存储在 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");
        }

【问题讨论】:

    标签: c# wpf gridview dictionary


    【解决方案1】:

    试试这个代码

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

    【讨论】:

    • @user1751280 :您可以查看我的代码。试试看,告诉我,它对你有用吗?
    【解决方案2】:
        private void OnDataGridSelectionChanged(object sender, RoutedEventArgs e)
        {
            var value = files[DataGrid.SelectedItem];
        }
    

    【讨论】:

    • 我想在不选择对象的情况下获取值。此外,您的解决方案给了我编译错误:“非静态字段、方法或属性‘System.Windows.Controls.Primitives.Selector.SelectedItem.get’需要对象引用”。
    • 您的解决方案不起作用。编译错误:无法从 'object' 转换为 'WpfApplication7.MainWindow.Files'。
    • var value = files[(Files)DataGrid.SelectedItem];
    猜你喜欢
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多