使用 CellTemplateSelector 更改 GridView 单元格背景
我正在使用 CellTemplateSelector 来更改具有特定值的特定单元格的单元格背景颜色。但是,我无法获取单元格背景颜色来填充单元格;它拥抱内容。这是我的标记:
<DataTemplate x:Key="Template1"> <Grid Background="#C0D9AF"> <TextBlock Text="{Binding Path=Value}" /> </Grid> </DataTemplate> <DataTemplate x:Key="Template2"> <Grid Background="#FFFCCF"> <TextBlock Text="{Binding Path=Value}" /> </Grid> </DataTemplate>
和我的代码:
private class CellTemplateSelector : DataTemplateSelector { public override DataTemplate SelectTemplate(object item, DependencyObject container) { return ((FrameworkElement)container).FindResource(condition ? "Template1" : "Template2") as DataTemplate; } }
I'm using a CellTemplateSelector to change the cell background color of specific cells with specific values. However, I can't get the cell background color to fill the cell; it hugs the content. Here's my markup:
<DataTemplate x:Key="Template1"> <Grid Background="#C0D9AF"> <TextBlock Text="{Binding Path=Value}" /> </Grid> </DataTemplate> <DataTemplate x:Key="Template2"> <Grid Background="#FFFCCF"> <TextBlock Text="{Binding Path=Value}" /> </Grid> </DataTemplate>
And my code:
private class CellTemplateSelector : DataTemplateSelector { public override DataTemplate SelectTemplate(object item, DependencyObject container) { return ((FrameworkElement)container).FindResource(condition ? "Template1" : "Template2") as DataTemplate; } }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
更改模板以使用具有背景颜色的只读文本框,并将 ListViewItem 的 HorizontalContentAlignment 设置为 Stretch:
您还可以查看此 回答了解更多信息。
Change your templates to use a a read-only TextBox with a Background color, and set HorizontalContentAlignment to Stretch for the ListViewItem:
You can also take a look at this answer for more information.