[英]How to clear WPF text box without updating its two-way bound source?
我有一個實現INotifyPropertyChanged
的Customer
類。 在我的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.