在Silverlight Datagrid中添加一行控件

| 在我正在开发的应用程序中,我正在使用数据网格来显示从数据库中获取的数据。在我的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中执行此操作的方法(如果可能)。     
已邀请:
        您可能可以不用为标题提供模板,但是如果这样做,您将需要重新模板
DataGrid
。     
        好的,所以我找到了解决方法。我为单元格声明了一个模板,其中包含一个按钮和一个绑定到数据的文本块。我将按钮的可见性属性绑定到一个布尔值上,该布尔值仅对第一行的元素为true。
<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>
这有点hack-ish。但这有效。我唯一关心的是性能,因为为每个单元声明了一个按钮。因此,对于成千上万的行,我想可能会影响性能。     

要回复问题请先登录注册