0

DataGridDataGridTemplateColumnで以下のコードを使用すると、フォーマットボタンが無効になります(グレー表示)。書式設定ボタンは、ツールバーに配置されている場合にのみ有効になります。

ボタンがツールバーに配置されている場合、 CommandTargetは必要ありません。したがって、ツールバーの外に配置すると、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>
4

1 に答える 1

0

ToolBarにはFocusManager.IsFocusScope="True"があり、デフォルトではfalseです。

ボタンを保持するパネル内にFocusManager.IsFocusScope="True"を配置するだけです。

CommandTargetは、ボタンがIsFocusScope = "True"パネルにある場合、ボタンを制限します。たとえば、2つのRichTextBoxがあり、ボタンが1つだけで機能するようにしたい場合です。

于 2010-08-20T21:23:59.443 に答える