0

UpdateSourceTrigger=PropertyChanged を使用してさまざまなプロパティに双方向モードでバインドされた多くのテキスト ボックスがあり、厄介な問題が 1 つあります。値を入力または削除すると、キャレットが文字列の先頭に移動します。私はここで解決策を見つけました: CurrencyFormat と PropertyChanged トリガーを持つ TextBox は、テキストを正しく受け入れません

しかし、正しく実装できません。私はおそらく何かが恋しいです。

テキストボックスの 1 つの XAMLbinding は次のとおりです。

enter code here <TextBox x:Name="TextBoxFirstPersonCameraMinPosY" Width="150" VerticalAlignment="Center" FontWeight="Normal"
                                 Text="{Binding Path=CameraLimitationParameters.FirstPersonCameraPosition.MinValue.Y, Mode=TwoWay, IsAsync=True, Delay=0, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource ToStringConverter}}" Style="{StaticResource {x:Type TextBox}}"
                                         MaxLength="40" Margin="10,0,0,0" MinWidth="150" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled" MaxWidth="150"></TextBox>

ここに私のスタイルがあります:

enter code here<Page.Resources >
    <ObjectDataProvider x:Key="CameraMode"
        MethodName="GetValues" ObjectType="{x:Type sys:Enum}" >
        <ObjectDataProvider.MethodParameters>
            <x:Type TypeName="settingsManager:CameraBehavior"/>
        </ObjectDataProvider.MethodParameters>
    </ObjectDataProvider>
    <settingsManager:ToStringConverter x:Key="ToStringConverter"></settingsManager:ToStringConverter>
    <Style TargetType="{x:Type TextBox}">
        <Style.Triggers>
            <Trigger Property="IsKeyboardFocusWithin"  Value="True">
                <Setter Property="Text" Value="{Binding UpdateSourceTrigger=PropertyChanged}"></Setter>
            </Trigger>
        </Style.Triggers>
    </Style>
</Page.Resources>

コードを複製せずにバインディング プロパティとは無関係にすべてのテキスト ボックスにこのスタイルを適用する方法を見逃したのは何ですか? そして、この回避策は私のケースで機能しますか? お願い助けて。

4

1 に答える 1