2010-08-20 18 views
0

使用下面的代碼中的結合,我的格式按鈕禁用(灰色)。格式化按鈕只有已啓用當他們將放入工具欄時。EditingCommands鬆動時,他們沒有在<strong>DataGrid中</strong>的<strong>DataGridTemplateColumn</strong>把工具欄

當按鈕被放在工具欄我不需要CommandTarget。所以當我把它們放在ToolBar之外時,有些人可能認爲它必須與CommandTarget一起工作,但它不會,爲什麼?

<Button Content="K" CommandTarget="{Binding ElementName=RTFBox}" Command="EditingCommands.ToggleItalic"/> 
<Button Content="U" CommandTarget="{Binding ElementName=RTFBox}" Command="EditingCommands.ToggleUnderline" /> 


    <DataGridTemplateColumn.CellTemplate> 
           <DataTemplate> 
            <Helper:RichTextBox VerticalScrollBarVisibility="Auto" x:Name="RTFBox" LostFocus="RTFBox_LostFocus" Text="{Binding Notes, UpdateSourceTrigger=PropertyChanged}" > 
             <Helper:RichTextBox.TextFormatter> 
              <Helper:RtfFormatter /> 
             </Helper:RichTextBox.TextFormatter> 
             <RichTextBox.CommandBindings> 
              <CommandBinding Command="EditingCommands.ToggleUnderline"/> 
              <CommandBinding Command="EditingCommands.ToggleItalic"/> 
             </RichTextBox.CommandBindings> 
            </Helper:RichTextBox> 
           </DataTemplate> 
          </DataGridTemplateColumn.CellTemplate> 

回答

0

ToolBar的FocusManager.IsFocusScope =「True」,默認爲false。

只需將FocusManager.IsFocusScope =「True」放入包含按鈕的面板中即可。

CommandTarget是限制按鈕,如果他們在一個IsFocusScope =「True」面板 - 例如如果您有兩個RichTextBoxes,並且只希望按鈕在其中一個上工作。

相關問題