को सत्यापित करने के लिए कैसे मैं PasswordBox
के लिए सत्यापन करने का प्रयास कर रहा हूं। सत्यापन करने के लिए मैंने link का पालन किया, जो दिखाता है कि TextBox
पर कैसे सत्यापित किया जाए।पासवर्डबॉक्स WPF
समस्या PasswordBoxes
के साथ आता है। चूंकि सुरक्षा कारणों से Password
बाध्यकारी नहीं है, इसलिए मैंने कोडप्रोजेक्ट उपयोगकर्ताओं के लिए this link (here समझाया) के बाद बाध्यकारी बनाने की कोशिश की।
तो जाहिर है, शानदार! मैं अपने PasswordBox
को Password
संपत्ति के साथ बांध सकता हूं, इसलिए मैं अपनी सत्यापन के साथ बाध्य कर सकता हूं। लेकिन यह मुझे ध्यान नहीं देता ...
यह एक नियमित रूप से TextBox
है कि मैं का उपयोग करें और ठीक काम करता है:
<local:ErrorProvider Grid.Column="1" Grid.Row="2" >
<TextBox Width="160"
HorizontalAlignment="Left"
Name="textBoxUserPass"
Text="{Binding Path=Password, UpdateSourceTrigger=Explicit}" />
</local:ErrorProvider>
और यह PasswordBox
मैं अनुकरण करने की कोशिश की है:
<local:ErrorProvider Grid.Column="1" Grid.Row="2" >
<PasswordBox Width="160"
HorizontalAlignment="Left"
Name="textBoxUserPass"
local:PasswordBoxAssistant.BindPassword="True"
local:PasswordBoxAssistant.BoundPassword="{Binding Path=Password, UpdateSourceTrigger=Explicit}" />
</local:ErrorProvider>
यह कैसे है मुझे प्रत्येक TextBox
:
BindingExpression beUserName = textBoxUserName.GetBindingExpression(TextBox.TextProperty);
if (beUserName != null) beUserName.UpdateSource();
के लिए
BindingExpression
मिलता है 210
और यह मैं इसे कैसे PasswordBox
के लिए मिलता है:
BindingExpression bePassword = textBoxUserPass.GetBindingExpression(PasswordBoxAssistant.BoundPassword);
if (bePassword != null) bePassword.UpdateSource();
अगर हम किसी भी गलती की है (मेरी मान्यता वर्ग पर परिभाषित), जब मैं ऐसा करते हैं:
if (!beUserName.HasError && !bePassword.HasError)
प्रत्येक BindingExpression
कहना चाहिए त्रुटि सत्यापन के आधार परझूठी। लेकिन मेरे PasswordBox
के लिए कभी भी मूल्य नहीं मिलता ... कोई विचार?
आप स्थापित करने की कोशिश की है ' ValidatesOnDataErrors = True' और 'ValidatesOnExceptions = True' आपके बाइंडिंग पर? –
यह 'पासवर्डबॉक्स' के लिए मौजूद नहीं है ... – Sonhja
यह 'बाउंडपास्वर्ड 'संलग्न संपत्ति के लिए करता है:' स्थानीय: पासवर्डबॉक्सएसिस्टेंट.बाउंडपास्वर्ड = "{बाइंडिंग पथ = पासवर्ड, अपडेटसोर्स ट्रिगर = स्पष्टीकरण, मान्यताऑनडेटाइरर्स = ट्रू, वैलिडेट्सऑनएक्सप्शन = ट्रू} "' –