在WPF應用程序中,我創建了一個設置窗口來自定義鍵盤快捷鍵。如何在不丟失WPF中的綁定的情況下更改TextBox.Text?
在文本框中,我處理KeyDown事件並將Key事件轉換爲人類可讀形式(以及我希望獲取數據的形式)。
文本框聲明如下
<TextBox Text="{Binding ShortCutText, Mode=TwoWay}"/>
,並在事件處理程序,我試圖同時使用
(sender as TextBox).Text = "...";
和
(sender as TextBox).Clear();
(sender as TextBox).AppendText("...");
在這兩種情況下,綁定回視圖模型不起作用,視圖模型仍包含舊數據並且不會更新。 在另一個方向(從viewmodel到文本框)的綁定工作正常。
有沒有一種方法可以在不使用綁定的情況下從代碼編輯TextBox.Text? 或者在我的過程中還有其他地方出現錯誤?
理想情況下,您應該在您的模型中更新此值,該值將自動反映在使用MVVM時文本框中的更改。 – Deepesh
嘗試在你的綁定中添加'UpdateSourceTrigger = PropertyChanged' –
我知道這是一個老問題,但現在人們似乎忽略的一件事是,如果你有一個控件的屬性綁定到另一個控件(說一個複選框的列表這些都是由父母複選框選中或取消選中的)。 VM中可能沒有任何東西可以幫助你。 –