簡體   English   中英

如何將焦點設置在 ViewModel (WPF/MVVM) 中的 TextBox 上?

[英]How to set the focus on a TextBox in the ViewModel (WPF/MVVM)?

我有一個帶有 MVVM 和一些文本框的 WPF 應用程序。 在我的 ViewModel 中,我評估文本框(數據庫查詢)的輸入並決定接下來要關注哪個文本框。 如果輸入不正確,我想 output 一個 MessageBox 並將焦點保持在當前 TextBox 上。

我的評估是由“LostFocus”事件觸發的,但我不知道如何將焦點設置在 ViewModel 中的特定 TextBox 上。

由於視圖 model 不應引用該視圖,因此我將通過事件來解決此問題。 在視圖 model 上聲明一個事件,當焦點發生時會引發該事件。 事件參數可以包含有關應該關注哪個 TextBox 的信息。

然后,您需要在視圖中處理事件,您可以在其中獲取對 TextBox 的引用。 具體如何發生取決於您的確切代碼和綁定機制。 如果您有視圖模型優先的方法,您已經可以在視圖構造函數中訪問視圖 model 並在那里訂閱事件。

如果您想避免視圖中的代碼隱藏,您將不得不使用標記擴展或附加屬性,我可能認為這不值得付出努力。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM