如何解决在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。但这有效。我唯一关心的是性能,因为为每个单元声明了一个按钮。因此,对于成千上万的行,我想可能会影响性能。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。