質問

プロジェクトで次のテンプレートを使用しました:

<DataTemplate 
    x:Key="textBoxDataTemplate">
    <TextBox 
        Name="textBox"
        ToolTip="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}"
        Tag="{Binding}"
        PreviewKeyDown="cellValueTextBoxKeyDown">
        <TextBox.Text>
            <MultiBinding
                Converter="{StaticResource intToStringMultiConverter}">
                <Binding 
                    Path="CellValue"
                    Mode="TwoWay">
                        <Binding.ValidationRules>
                            <y:MatrixCellValueRule 
                                MaxValue="200" />
                        </Binding.ValidationRules>
                </Binding>
                <Binding 
                    RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type y:MatrixGrid}}" 
                    Path="Tag"
                    Mode="OneWay" />
            </MultiBinding>
        </TextBox.Text>
    </TextBox>
</DataTemplate>

このテンプレートを使用して、ユーザー用の編集可能なマトリックスを作成しました。ユーザーはマトリックス内のセル間を移動できます。選択したテキストボックスのデータを強調表示したいのですが、機能しません。 TextBox.Focus()およびTextBox.SelectAll()を呼び出して、効果を達成しましたが、何もしませんでした。フォーカス()は機能しますが、テキストは強調表示されません。

どんな助けでも歓迎し、感謝します。

役に立ちましたか?

解決

さて、誰かが興味を持っている場合、この問題の解決策は、イベントハンドラーメソッドに textBox.SelectAll() および textBox.Focus()が呼び出されます。

問題は、トンネリングイベントを処理するテキストボックスの PreviewKeyDown イベントと、おそらく SelectAll()および Focus()呼び出しは、 e.Handled = true; ステートメントを呼び出さずに無視されます。

誰かの助けになることを願っています。

他のヒント

残りのコードがなければ、これがうまくいくかどうかを言うのは困難ですが、DataTemplateを使用して小さなサンプルを作成しました(投稿されなかったコードを参照する部分を除く)。

GotFocusイベントハンドラーをDataTemplateのTextBoxに追加することで、テキストボックス内のすべてのテキストを選択できました。

<TextBox 
    ...
    GotFocus="textBox_GotFocus"
    ...>
...
</TextBox>

そして分離コード:

    private void textBox_GotFocus(object sender, RoutedEventArgs e)
    {
        TextBox textBox = sender as TextBox;
        if (textBox != null)
        {
            textBox.SelectAll();
        }
    }

(ボックスがフォーカスを受け取ったときではなく)さまざまな状況下ですべてを選択しようとしているかどうかを教えてください。

これは非常に優れた非常にシンプルなソリューションです(テンプレートで機能するかどうかはわかりませんが、試してみてください): http://social.msdn.microsoft.com/forums/en-US/wpf/thread/564b5731-af8a-49bf -b297-6d179615819f

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top