CanYou8 发表于 2016-1-27 17:22:00

C1FlexGrid复选框只读设置问题

需求:使用C1FlexGrid绑定数据,各列均只读。
问题:在C1FlexGrid中设置IsReadOnly="True",或者在Column中设置IsReadOnly="True",列表的CheckBox列(“排单”列)仍然可以编辑;代码如下
                        <c1:C1FlexGrid Name="C1FlexGrid" Grid.Row="1" AutoGenerateColumns="False" AllowAddNew="False"
                                       IsReadOnly="True" Style="{StaticResource Green}" BorderThickness="1"
                                       SelectionMode="Row" MaxRowHeight="20"
                                       ItemsSource="{Binding List,IsAsync=True}" SelectedItem="{Binding CurrentItem,Mode=TwoWay}">
                            <i:Interaction.Triggers>
                              <i:EventTrigger EventName="MouseRightButtonDown">
                                    <command:EventToCommand PassEventArgsToCommand="True" Command="{Binding GridRightClickCommand}"/>
                              </i:EventTrigger>
                            </i:Interaction.Triggers>
                            <c1:C1FlexGrid.Columns>
                              <c1:Column Header="类型" Binding="{Binding OrderTypeStr}"/>
                              <c1:Column Header="日期" Binding="{Binding ReviewDate}" Format="yyyy-MM-dd" HorizontalAlignment="Left"/>
                              <c1:Column Header="客户代码" Binding="{Binding CustomerCode}"/>
                              <c1:Column Header="排单" IsReadOnly="True">
                                    <c1:Column.CellTemplate>
                                        <DataTemplate>
                                          <CheckBox IsChecked="{Binding IsScheduling}"/>
                                        </DataTemplate>
                                    </c1:Column.CellTemplate>
                              </c1:Column>
                            </c1:C1FlexGrid.Columns>
                        </c1:C1FlexGrid>
如何设置让其只读?

另外,尝试设置CheckBox的IsEnabled="False",虽然可以实现只读效果,但是显示效果差强人意,整个CheckBox灰蒙蒙的看不清,请看下图

如何实现类似C1DataGrid这样的效果?

gw0506 发表于 2016-1-28 10:12:00

ReadOnly和Enable是不同的概念,所以效果不同。
对于标准的CheckBox,没有IsReadOnly属性,所以不可能做到你要的效果。

FlexGrid本身支持CheckBox的单元格类型,你的“排单”列是不是bool类型?如果是的话,完全不需要自定义模板,他会自动生成checkbox。这时候你给flexgrid设置 isreadonly 它就是不可编辑的。

CanYou8 发表于 2016-1-28 10:58:00

将属性转为bool类型后,自动生成了checkbox;完全实现了我这边想达到的效果!非常感谢!! :hjyzw:

gw0506 发表于 2016-1-28 13:48:00

解决了就好。

Alice 发表于 2016-3-1 14:24:00

回复 3楼CanYou8的帖子

为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
       http://gcdn.gcpowertools.com.cn/attachment.aspx?attachmentid=10062

您可以关注我们的微信服务号(微信号:GrapeCityDT),帖子有回复时可即时收到提醒,便于您第一时间查看,尽快解决技术问题。关注即可获得300金币用于兑换礼品。
页: [1]
查看完整版本: C1FlexGrid复选框只读设置问题