如何控制允许的复选框状态数
本文关键字:复选框 状态 何控制 控制 | 更新日期: 2023-09-27 17:57:56
我使用的是silverlight 4工具包gridcontrol,并且使用的是自动生成的列。我的布尔字段显示为三态复选框(true、false、null)。
public bool? Enabled { get; set; }
如何强制它只使用两种状态(真/假)。此时不能更改字段类型。
@Bala
[XAML]
<sdk:DataGrid Grid.Row="1" Grid.Column="1" x:Name="liveGrid"
HorizontalAlignment="Center"
VerticalScrollBarVisibility="Hidden" HorizontalContentAlignment="Center"
ItemsSource="{Binding MyDatasource}" AutoGenerateColumns="True" />
只是想一想:UIHint数据注释是否存在?
可能的解决方案
下面是@Rick,我有一个可行的解决方案:
[XAML]
<sdk:DataGrid Grid.Row="1" Grid.Column="1" x:Name="liveGrid"
HorizontalAlignment="Center"
VerticalScrollBarVisibility="Hidden" HorizontalContentAlignment="Center"
AutoGeneratingColumn="viewModel_AutoGeneratingColumn"
ItemsSource="{Binding MyDatasource}" AutoGenerateColumns="True" />
[查看]
private void viewModel_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
if ("Enabled" == e.PropertyName)
{
DataGridCheckBoxColumn checkBox = e.Column as DataGridCheckBoxColumn;
checkBox.IsThreeState = false;
}
}
您可以继续使用自动生成的列并自定义这些列。下面是一篇描述如何自定义自动生成列的文章:
- 如何:在DataGrid控件中自定义自动生成的列
该技术主要包括挂接DataGrid.AutoGeneratingColumn
事件。
如果您遵循该过程,您所需要做的就是找到您的列(例如,按属性名称),并将IsThreeState
设置为false
:
- DataGridCheckBoxColumn.IsThreeState属性