TextBox
テキストが変更されたScrollViewer
ときに、最後までスクロールする必要があるアクションを実行します。
ここにxaml
:
<ScrollViewer>
<TextBox IsReadOnly="True" Text="{Binding SomeText}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="TextChanged">
<ac:ScrollToEndAction/>
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
</ScrollViewer>
ここでアクション:
public class ScrollToEndAction : TargetedTriggerAction<FrameworkElement>
{
protected override void Invoke(object parameter)
{
TextBox _textBox = (parameter as TextChangedEventArgs).OriginalSource as TextBox;
_textBox.ScrollToEnd();
}
}
それは動作しません。
次の方法でテキストを実際に変更しようとしました(うまくいきました!):
public class ScrollToEndAction : TargetedTriggerAction<FrameworkElement>
{
protected override void Invoke(object parameter)
{
TextBox _textBox = (parameter as TextChangedEventArgs).OriginalSource as TextBox;
_textBox.Text="Test";
}
}
なぜこうなった?