MahApps用户类库中DataGrid默认样式是其TextBox在编辑时,包含ClearTextButton。当表格中列数很多的时候,往往不需要ClearTextButton,否则双击进入编辑状态时常常不小心就把填好的内容删除掉了。通过定义如下的代码(当然具体样式参数根据需要设置),然后再设置DataGridTextColumn中设置EditingElementStyle就可以了。
<Style x:Key="TextBoxEditingWithoutClearBtn" BasedOn="{StaticResource MahApps.Styles.TextBox}" TargetType="{x:Type TextBox}">
<Setter Property="BorderThickness" Value="0" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="Margin" Value="0" />
<Setter Property="MinHeight" Value="0" />
<Setter Property="Padding" Value="2 4" />
<Setter Property="VerticalAlignment" Value="Stretch" />
</Style>
当然,如果DataGrid的类是通过code动态添加的,则可以通过FindResource来获取style并赋值给EditingElementStyle属性。
Style s = this.FindResource("TextBoxEditingWithoutClearBtn") as Style;
DataGridTextColumn textColumn = new DataGridTextColumn();
textColumn.EditingElementStyle = s;