C1DataGrid只读列样式设置
C1DataGrid中有一些列是只读的,有一些是可编辑的,但用户无法用肉眼识别哪些列可编辑,怎样设置才能从样式上做以区别 回复 1楼CanYou1的帖子谢谢您的反馈。
您是设置列的ReadOnly属性(比如DataGridTextColumn)为true么?
如果是这样,您可以通过LoadedCellPresenter事件来判断列的只读,并且设置背景色。
比如代码参考:
void grid_LoadedCellPresenter(object sender, DataGridCellEventArgs e)
{
if (e.Cell.Column.IsReadOnly)
{
e.Cell.Presenter.Background = Brushes.Red;
}
} 回复 2楼Alice的帖子
好的,谢谢 回复 3楼CanYou1的帖子
不客气。
谢谢反馈。 回复 2楼Alice的帖子
发现这样做存在一个问题,如果列表有横向滚动条,左右滚几下,会导致有的非只读列也变色了 回复 5楼CanYou1的帖子
使用随机安装示例做测试(将某列设置为只读,滚动),无法重现您提到的问题,有什么必然重现的步骤?
测试Demo:
\Documents\ComponentOne Samples\WPF\C1.WPF.DataGrid\CS\DataGridSamples\DataGrid 回复 6楼Alice的帖子
回复 7楼CanYou1的帖子
谢谢您提供的Demo。
您的问题我们收到了,测试后给您反馈。 回复 7楼CanYou1的帖子
应该是刷新导致的。
使用模板来设置背景色,代码参考:
<c1:DataGridTemplateColumn Header="column1" Width="400" IsReadOnly="True">
<c1:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding column1}" Background="Pink"></TextBlock>
</DataTemplate>
</c1:DataGridTemplateColumn.CellTemplate>
</c1:DataGridTemplateColumn> 回复 9楼Alice的帖子
不能直接设置吗,这样的话每个只读列都要换成模板
页:
[1]
2