Добавление ряда элементов управления в сетку данных Silverlight - PullRequest
0 голосов
/ 10 июня 2011

В разрабатываемом приложении я использую сетку данных для отображения выборки данных из базы данных.В моем файле XAML объявлено так:

<sdk:DataGrid x:Name="dg" AutoGenerateColumns="False" ItemSource={Binding etc.} >
    <sdk:DataGrid.Columns>
        <sdk:DataGridTextBoxColumn Header="Col1"
             Binding="{Binding Col1Data}" />
        <sdk:DataGridTextBoxColumn Header="Col2" 
             Binding="{Binding Col2Data}" />
        <sdk:DataGridTextBoxColumn Header="Col3"
             Binding="{Binding Col3Data}" />
        <sdk:DataGridCheckBoxColumn Header="Col4" 
             Binding="{Binding Col4Data}" />
   <sdk:DataGrid.Columns>
<sdk:DataGrid>

Я хочу добавить строку, содержащую 5 полей со списком (по 1 для каждого столбца) между заголовком и первой строкой моегоданные.Это довольно легко сделать для столбца, используя DataGridTemplateColumn, но как я могу сделать это для строки?

Заранее спасибо за ваши предложения!

Поддельное редактирование: Да, кстати, яЯ не фанат кода позади (пытаюсь использовать полный MVVM), поэтому я ищу способ сделать это в XAML, если это возможно.

Ответы [ 2 ]

1 голос
/ 10 июня 2011

Возможно, вам не удастся предоставить шаблон для заголовка, но в противном случае вам придется повторно шаблонировать DataGrid, чтобы сделать это.

0 голосов
/ 17 июня 2011

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

<sdk:DataGridTemplateColumn Header="Col1" Width="60">
    <sdk:DataGridTemplateColumn.CellTemplate>
       <DataTemplate>
          <StackPanel Orientation="Vertical" Height="30">
             <Button Content="Boutton" Visibility="{Binding Path=IsFirstElement, Converter={StaticResource visibilityConverter}}" />
             <TextBlock Text="{Binding Path=Col1Data}" />
           </StackPanel>
        </DataTemplate>
     </sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>

Это немного хакерство.Но это работает.Мое единственное беспокойство - производительность, так как кнопка объявлена ​​для каждой ячейки.Так что с тысячами подряд, я думаю, может быть падение производительности.

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