Привязка словаря к DataGridView в C #? - PullRequest
6 голосов
/ 02 ноября 2009

У меня есть словарь, как показано ниже

Dictionary<string, List<StrikePrice>>

, где

public class StrikePrice
{
    public string Strike { get; private set; }
    public string Price { get; private set; }

    public StrikePrice(string strike, string price)
    {
        Strike = strike;
        Price = price;
    }
}

и я хочу присвоить этот словарь для DataGridView

this.dataGridViewTest.DataSource = listSmiles;

Я понимаю, что нельзя назначить словарь для DataSource, поскольку он не является производным от интерфейса IList.

Можно ли как-нибудь назначить этот элемент словаря для таблицы данных?

Ответы [ 4 ]

3 голосов
/ 27 сентября 2012

Я знаю, что это немного устарело, но, возможно, это кому-нибудь поможет. Это однолинейное решение сработало для меня

gridTAV.DataSource = dTAV.Values.ToList<TotalAccountValue>();

gridTAV - это DataGridView. dTAV - это словарь. Ключом является дата (не важно), а значением является класс.

Dictionary<DateTime, TotalAccountValue> dTAV = new Dictionary<DateTime, TotalAccountValue>();

Поскольку значение было классом, метод ToArray () у меня не работал, поскольку он не «распаковывал» свойства класса.

Обратите внимание, что это не помещает КЛЮЧ в сетку, но мне это действительно не нужно.

2 голосов
/ 02 ноября 2009

Вы пытались использовать свойство "Значения" в словаре?

this.dataGridViewTest.DataSource = listSmiles.Values.ToList();
2 голосов
/ 13 июня 2011

Да, вызывая ToArray of Dictionary

        var g = this.dataGridView1;
        var s = new Dictionary<string, string>();
        s.Add("1", "Test1");
        s.Add("2", "Test2");
        s.Add("3", "Test3");
        g.DataSource = s.ToArray();
0 голосов
/ 02 ноября 2009

Если вопрос касается WPF или silverlight, эта статья дает решение.

Я использовал его, и он хорошо работает, даже для большого количества столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...