2015-04-15 3 views
1

У меня есть вложенный словарь.WPF: Как связать вложенный словарь в XAML?

Dictionary<DateTime, Dictionary<double, string>> MyDoubleDictionary 

Он представляет следующую матрицу

4/7/2015 4/15/2015 4/21/2015 
"A1"  "A2"  "A3"  10.3 
"b1"  "b2"  "b3"  15.7 
"c1"  "c2"  "c3"  20.33 

Как связать этот словарь в WPF DataGrid в XAML? Я надеюсь заполнить свои образцы данных с помощью Blend.

ответ

0

Если вы хотите привязать к конкретному пункту вашего MyDoubleDictionary где DateTimeKey является ключевым для одной из словарных статей, вы можете попробовать

<DataGrid.Columns> 
    <DataGridTextColumn Header="Key" Binding="{Binding MyDoubleDictionary.[DateTimeKey].Key}" /> 
    <DataGridTextColumn Header="Value" Binding="{Binding MyDoubleDictionary.[DateTimeKey].Value}" /> 
</DataGrid.Columns> 

Можно также создать отдельное свойство Dictionary<double, string> MyDoubleDictionaryEntry и связать DataGrid к тому, что и заполнить его записью от MyDoubleDictionary, которую вы хотите отобразить в этот момент.

EDIT Я не думаю, что получаю, как ваши данные используются. Это, как вы представляете один из примера:

var MyDoubleDictionary = new Dictionary<DateTime, Dictionary<double, string>> 
{ 
    {new DateTime(2015,4,7), new Dictionary<double, string>() {{10.3,"A1"}, {10.3,"A2"}, {10.3,"A3"}}}, 
    {new DateTime(2015,4,15), new Dictionary<double, string>() {{15.7,"b1"}, {15.7,"b2"}, {15.7,"b3"}}}, 
    {new DateTime(2015,4,21), new Dictionary<double, string>() {{20.33,"c1"}, {20.33,"c2"}, {20.33,"c3"}}} 
}; 

Не уверен, что если вы используете лучшую модель данных для привязки к сетке. Другое решение могло бы написать собственный контроль, чтобы отобразить его или изменить шаблон данных в соответствии с вашими потребностями. I

Если бы вы могли дать более глубокое понимание, которое было бы полезно.

+0

Благодарим вас за ответ. Я добавил примеры данных, которые будут показаны в DataGrid, надеюсь, что это более понятно для вас. –

+0

@JesonMartajaya: Можете ли вы проверить мое редактирование и предоставить дополнительную информацию? Или, возможно, у вас уже проблема с проблемой –

+0

Да, ваше право правильно. Вот как я представляю данные в словаре. –

Смежные вопросы