我有一个数据网格,其中一个列启用了拼写检查。拼写检查器使用默认字典,但是我想添加一个自定义字典,以便拼写检查器可以访问用户添加的特定于域的术语。
该栏定义如下:
<DataGrid.Columns>
<DataGridTextColumn x:Name="dgcComments" Header="Comment" Width="*" Binding="{Binding Path=Comment, Mode=TwoWay, UpdateSourceTrigger=PropertyChange}">
<DataGridColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextWrapping" Value="Wrap" />
<Setter Property="Padding" Value="2,0,2,2" />
<Setter Property="TextAlignment" Value="Left" />
</Style>
</DataGridColumn.ElementStyle>
<DataGridColumn.EditingElementStyle>
<Style TargetType="TextBox">
<Setter Property="TextWrapping" Value="Wrap" />
<Setter Property="AcceptsReturn" Value="True" />
<Setter Property="Padding" Value="2,0,2,2" />
<Setter Property="TextAlignment" Value="Left" />
<Setter Property="MaxLength" Value="4000" />
<Setter Property="SpellCheck.IsEnabled" Value="True" />
</Style>
</DataGridColumn.EditingElementStyle>
</DataGridTextColumn>
...
</DataGrid.Columns>
我知道我无法在xaml中添加字典 - SpellCheck.CustomDictionaries没有setter,只添加和删除方法。有没有办法在后面的代码中添加字典?我很难过;我无法解决如何访问TextBox编辑元素以调用TextBox.SpellCheck.CustomDictionary.Add()。
答案 0 :(得分:0)
这可以解决您上面提到的问题。 https://msdn.microsoft.com/en-us/library/system.windows.controls.spellcheck.customdictionaries(v=vs.110).aspx
uri description - https://msdn.microsoft.com/en-us/library/aa970069(v=vs.100).aspx
xmlns:sys="clr-namespace:System;assembly=System"
<DataGrid.Columns>
<DataGridTextColumn x:Name="dgcComments" Header="Comment" Width="*" Binding="{Binding Path=Comment, Mode=TwoWay, UpdateSourceTrigger=PropertyChange}">
<DataGridColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextWrapping" Value="Wrap" />
<Setter Property="Padding" Value="2,0,2,2" />
<Setter Property="TextAlignment" Value="Left" />
</Style>
</DataGridColumn.ElementStyle>
<DataGridColumn.EditingElementStyle>
<Style TargetType="TextBox">
<Setter Property="TextWrapping" Value="Wrap" />
<Setter Property="AcceptsReturn" Value="True" />
<Setter Property="Padding" Value="2,0,2,2" />
<Setter Property="TextAlignment" Value="Left" />
<Setter Property="MaxLength" Value="4000" />
<Setter Property="SpellCheck.IsEnabled" Value="True" />
<Setter Property="SpellCheck.CustomDictionaries">
<Setter.Value>
<sys:Uri>pack://application:,,,/customwords.lex</sys:Uri>
</Setter.Value>
</Setter>
</Style>
</DataGridColumn.EditingElementStyle>
</DataGridTextColumn>
...
</DataGrid.Columns>