【发布时间】:2013-08-26 14:41:21
【问题描述】:
我有一个普通的 wpf TextBox 控件绑定到一个字符串属性。我需要在绑定或 .Text 属性更新后立即更新显示的文本。我试过了
((TextBox)sender).GetBindingExpression(TextBox.TextProperty).UpdateSource();
((TextBox)sender).GetBindingExpression(TextBox.TextProperty).UpdateTarget();
在 TextChanged 事件处理程序中。
我在绑定上尝试过UpdateSourceTrigger=Explicit。我试过了
Application.Current.Dispatcher.BeginInvoke(
DispatcherPriority.Input,
new Action(() =>
{
statusTextBox.Text = "newValue";
}));
以及这些的许多不同组合。但是只有当我更新文本框的方法退出时,显示的文本才会改变。
XAML:
<TextBox x:Name="txBox" Height="150" Margin="0,0,0,0" VerticalAlignment="Top" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" AcceptsReturn="True" VerticalContentAlignment="Top" Text="{Binding TextProperty}"Width="200" />
【问题讨论】:
-
你的 XAML 是什么样的?
-
为什么将文本绑定到属性时设置
statusTextBox.Text = "newValue"? -
在
TextProperty和UpdateSourceTrigger=PropertyChanged上引发OnPropertyChanged事件就足够了。您尝试过这些方法吗? -
@Bob 这只是我多次尝试改变显示值的尝试之一。其实我用的是绑定。