Это следующий вопрос из более ранней публикации (here).Динамическое связывание столбцов в Xaml
У меня есть информация о «заголовке», которая хранится как: Dictionary<string,string>
- где первая строка представляет имя поля, а вторая заголовок, который я хочу отобразить.
У меня есть набор динамических данных, который хранится как: Dictionary<string, object>
- где строка - это имя поля.
я связываю с этим в XAML как:
<data:DataGrid Name="_dataGrid" AutoGenerateColumns="True" IsReadOnly="False" Margin="5" Height="200">
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="Forename" CanUserSort="True" SortMemberPath="Forename"
Binding="{Binding Converter={StaticResource RowIndexConverter},
ConverterParameter=Forename}"/>
<data:DataGridTextColumn Header="Surname" CanUserSort="True" SortMemberPath="Surname"
Binding="{Binding Converter={StaticResource RowIndexConverter},
ConverterParameter=Surname}"/>
<data:DataGridTextColumn Header="Age" CanUserSort="True" SortMemberPath="Age"
Binding="{Binding Converter={StaticResource RowIndexConverter},
ConverterParameter=Age}"/>
<data:DataGridTextColumn Header="Shoesize" CanUserSort="True" SortMemberPath="Shoesize"
Binding="{Binding Converter={StaticResource RowIndexConverter},
ConverterParameter=Shoesize}"/>
</data:DataGrid.Columns>
</data:DataGrid>
Задача 1 Я хочу автоматическую генерацию этих столбцов (с использованием информации заголовка входит в комплект)
Задача 2 Я хочу столбцы быть (например, boolean = checkbox)
Задача 3 Идеально я wou ld также хотите указать погоду, кнопка должна существовать в первом столбце или нет (т. кнопка редактирования/просмотра) с помощью привязки данных
ясно, что есть много деталей осталось из этого объяснения, но он должен установить вас на правильном пути. – kenwarner
Ах, да, я раньше изучал метод Владимира Бодурова. И это действительно здорово. Однако моя проблема заключается в том, что генерация динамического типа означает, что вы не можете использовать сильную печать во время разработки (а отладка во время выполнения возвращает null). Колин имеет хорошую должность здесь: http://www.scottlogic.co.uk/blog/colin/2009/04/binding-a-silverlight-datagrid-to-dynamic-data-via-idictionary/comment-page- 1/# comment-5535 Это объясняет более «стандартный» способ делать вещи. Это требует некоторой настройки при использовании с различными элементами управления, но код C# - очень изящное решение. –