2017-10-23 13 views
0

私は、列の1つでスペルチェックを有効にしたDataGridを持っています。スペルチェッカーは既定の辞書を使用しますが、ユーザーが追加したドメイン固有の用語にスペルチェッカーがアクセスできるようにカスタム辞書を追加したいと考えています。次のようにDataGridのスペルチェック:カスタム辞書を追加するには?

列が定義されています

<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はセッターを持っていない、唯一のメソッドを追加し、削除します。コードの中に辞書を追加する方法はありますか?私は困惑している。 TextBox.SpellCheck.CustomDictionary.Add()を呼び出すためにTextBox編集要素にアクセスする方法を理解できません。

+0

あなたは[SpellCheck.CustomDictionaries](https://msdn.microsoft.com/en-us/library/system.windows.controls.spellcheck.customdictionariesを試してみました(v = vs.110).aspx) –

答えて

0

これは上記の問題を解決するはずです。 https://msdn.microsoft.com/en-us/library/system.windows.controls.spellcheck.customdictionaries(v=vs.110).aspx

URI説明 - 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> 
+0

私は提案を感謝しますが、この場合の特定のエラーは、 "プロパティCustomDictionariesにアクセス可能なセッターがありません"です。 – Blue

+0

あなたがリンクした特定の例は、異なる方法でカスタム辞書にアクセスできるように見えるRichTextBoxで動作していました。 '' RichTextBox Margin = "38,18,40,0" Name = "richTextBox1" Height = "45" VerticalAlignment = "Top" SpellCheck.IsEnabled = "True"> <! - customwords.lexがコンテンツファイルに含まれています - > pack:// application:,, 、/ customwords.lex 'code' – Blue

関連する問題