DataGridTextColumn这个控件不是一个真正的Visual所以IsReadOnly的属性绑定没用
如果绑定为
<DataGridTextColumn Header="IsReadOnly" IsReadOnly="{Binding IsReadOnly,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource stringToBoolConvert},
RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}}"
Width="110" ElementStyle="{StaticResource TextAlignmentStyle}"
Binding="{Binding HardThreshold, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
这是属性IsReadOnly是不起作用的,必须使用DataGridTemplateColumn.CellTemplate来控制是否只读,如
<DataGridTemplateColumn Header="IsReadOnly" Width="*" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox IsReadOnly="{Binding IsReadOnly}" Text="{Binding ResetTime}" BorderThickness="0" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
这样就可以了,另外注意datagrid是获取不到外部datacontext的