簡體   English   中英

如何清除WPF文本框而不更新其雙向綁定源?

[英]How to clear WPF text box without updating its two-way bound source?

我有一個實現INotifyPropertyChangedCustomer類。 在我的CustomerDetailsViewModel類中,我有一個類型為Customer的屬性。 在XAML中,每個文本框都綁定到my視圖模型公開的Customer每個屬性。 我將TwoWay綁定與PropertyChanged用作UpdateSourceTrigger

現在,我要有一個“清除”按鈕,它將清除所有文本框的內容。 目的是允許用戶使用另一個“添加”按鈕來創建新客戶。 僅當用戶輸入正確的文本時,才必須啟用“添加”按鈕。 即不應有任何驗證錯誤。

如何清除所有文本框而不更新 GUI上當前顯示的Customer實例的綁定屬性的值

我的解決方案:一種方法是創建一個新的Customer實例,並將所有屬性(如Name,Address等)設置為空字符串。 但是問題在於,我創建新實例用戶的那一刻在GUI上看到錯誤模板,因為驗證(例如“不允許使用空名稱”)失敗。

您可以使用DataTrigger。 像這樣:

<DataTrigger Binding={Binding Text, ElementName=txtTextBox1} Value="">

據我了解的問題,例如,當您使用“清除”命令時,您應該做的是取消綁定Customer對象。 從綁定到接口的客戶創建一個新客戶。 出現的驗證錯誤只是預期的。

編輯:如果您想使用驗證錯誤來強迫用戶輸入正確的數據,為什么還要隱藏驗證錯誤? 我認為實際上更人性化,以便在嘗試保存之前給出要求。

暫無
暫無

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

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