WPF - UpdateSourceTrigger не запускается при использовании ControlTemplate - PullRequest
1 голос
/ 04 февраля 2020

У меня есть следующий стиль, определенный для TextBox:

<Style TargetType="{x:Type TextBox}" x:Key="DialogWindowTextBox">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="TextBox">
                                    <Border BorderThickness="2" CornerRadius="3" BorderBrush="#99bbe8">
                                        <TextBox  MinHeight="20" MinWidth="150" BorderThickness="0"></TextBox>
                                    </Border>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>

Использование определенного стиля:

<TextBox Style="{StaticResource DialogWindowTextBox}"  Width="230" DockPanel.Dock="Right"  Margin="4" HorizontalAlignment="Right" Text="{Binding UuidFilter, UpdateSourceTrigger=PropertyChanged, Delay=2000}"/>

Теперь проблема в том, что UpdateSourceTrigger игнорируется для всех TextBox, для которых определен стиль применяется (свойство UuidFilter не обновляется). Стили применяются ко всем текстовым полям точно так, как определено во фрагменте кода.

Что я здесь не так делаю?

1 Ответ

0 голосов
/ 04 февраля 2020

Вы не должны помещать другой элемент TextBox в ControlTemplate из TextBox.

. Вам следует заменить TextBox в шаблоне на ScrollViewer:

<Style TargetType="{x:Type TextBox}" x:Key="DialogWindowTextBox">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="TextBox">
                <Border BorderThickness="2" CornerRadius="3" BorderBrush="#99bbe8" MinHeight="20" MinWidth="150">
                    <ScrollViewer x:Name="PART_ContentHost" Focusable="false" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"/>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...