मैंने अपनाया है जो नीचे दिखाए गए IDataErrorInfo इंटरफ़ेस और शैलियों का उपयोग करके WPF में टेक्स्टबॉक्स को मान्य करने का मानक तरीका प्रतीत होता है। हालांकि, पृष्ठ अमान्य होने पर मैं सहेजें बटन को कैसे अक्षम कर सकता हूं? क्या यह किसी भी तरह ट्रिगर्स के माध्यम से किया जाता है?सत्यापन विफल होने पर WPF में सहेजें बटन अक्षम करें
Default Public ReadOnly Property Item(ByVal propertyName As String) As String Implements IDataErrorInfo.Item
Get
Dim valid As Boolean = True
If propertyName = "IncidentCategory" Then
valid = True
If Len(IncidentCategory) = 0 Then
valid = False
End If
If Not valid Then
Return "Incident category is required"
End If
End If
Return Nothing
End Get
End Property
<Style TargetType="{x:Type TextBox}">
<Setter Property="Margin" Value="3" />
<Setter Property="Height" Value="23" />
<Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<DockPanel LastChildFill="True">
<Border BorderBrush="Red" BorderThickness="1">
<AdornedElementPlaceholder Name="MyAdorner" />
</Border>
</DockPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}" />
</Trigger>
</Style.Triggers>
</Style>
काम करता है महान बहुत धन्यवाद। हालांकि एक और बात है। मैं निम्नलिखित कोड के साथ व्यक्तिगत नियंत्रण की जांच कर सकता हूं यदि सत्यापन। गेटहास त्रुटि (myTextbox) तो e.CanExecute = झूठी क्या व्यक्तिगत रूप से सभी नियंत्रणों की वैधता की जांच करने का कोई तरीका है? – Mitch
मैंने इस बारे में कुछ विचारों को शामिल करने के लिए संपादित किया। सुझाए गए कमांड उपयोग के लिए –
+1। कमांडें हैं जो WPF ने वास्तव में मेरे लिए क्लिक करना शुरू कर दिया है। –