在 WPF 应用程序中,我正在创建一个设置窗口来自定义键盘快捷键。
在文本框中,我处理 KeyDown 事件并将 Key 事件转换为人类可读的形式(以及我想要的数据形式)。
文本框是这样声明的
<TextBox Text="{Binding ShortCutText, Mode=TwoWay}"/>
在事件处理程序中,我尝试同时使用两者
(sender as TextBox).Text = "...";
和
(sender as TextBox).Clear();
(sender as TextBox).AppendText("...");
在这两种情况下,绑定(bind)回 View 模型都不起作用, View 模型仍然包含旧数据并且没有得到更新。 在另一个方向(从 View 模型到文本框)绑定(bind)工作正常。
有没有一种方法可以在不使用绑定(bind)的情况下通过代码编辑 TextBox.Text? 还是我的过程中其他地方有错误?
最佳答案
var box = sender as TextBox;
// Change your box text..
box.GetBindingExpression(TextBox.TextProperty).UpdateSource();
这会强制您的绑定(bind)更新。
关于c# - 如何在不丢失 WPF 中的绑定(bind)的情况下更改 TextBox.Text?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12280927/