Hai ragione
Questo è il codice VB. Ho intercettato tutte le eccezioni ma non riesco ad intercettare questa perché la gestisce il textBox...
codice:
Private Sub ButtonModifica_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles ButtonModifica.Click
Dim Conferma = MsgBox("Applico modifiche?", vbYesNo)
Select Case Conferma
Case vbYes
If IndirizzoComboBox.SelectedIndex = -1 Then
MsgBox("Record non trovato")
InfoScuolaEntityViewSource.View.MoveCurrentToFirst()
Exit Sub
End If
Try
If NomeScuolaTextBox.Text = Nothing Or IndirizzoTextBox.Text = Nothing Or _
MeccanograficoTextBox.Text = Nothing Or TelefonoTextBox.Text = Nothing Or _
EmailTextBox.Text = Nothing Then
Throw New ArgumentNullException
End If
Catch ex As ArgumentNullException
MsgBox("Non sono ammessi campi vuoti")
DbScuoleDataSet.RejectChanges()
Exit Sub
End Try
Try
TelefonoTextBox.Text = CLng(TelefonoTextBox.Text)
Catch ex As InvalidCastException
MsgBox("Numero di telefono non valido")
DbScuoleDataSet.RejectChanges()
Exit Sub
End Try
DbScuoleDataSetInfoScuolaEntityTableAdapter.Update(DbScuoleDataSet)
MsgBox("Modifiche apportate")
Case vbNo
DbScuoleDataSet.RejectChanges()
MsgBox("Modifiche non apportate")
End Select
End Sub
End Class
Questo è il codice XAML riguardante lo stile del textBox e fa apparire un punto esclamativo in caso di mancata convalida. Ma secondo me può essere omesso perché si tratta di gestire qualche evento che non capisco nel codice VB. Per sicurezza posto il codice:
codice:
<Style x:Key="TextBoxStyle"
TargetType="{x:Type TextBox}">
<Setter Property="FontSize"
Value="15" />
<Setter Property="Height"
Value="28" />
<Setter Property="Width"
Value="210" />
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<DockPanel LastChildFill="True">
<Ellipse DockPanel.Dock="Right"
ToolTip="{Binding ElementName=myTextbox,
Path=AdornedElement.(Validation.Errors)[0].ErrorContent}"
Width="15" Height="15"
Margin="-25,0,0,0"
StrokeThickness="1" Fill="Red" >
<Ellipse.Stroke>
<LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
<GradientStop Color="#FFFA0404" Offset="0"/>
<GradientStop Color="#FFC9C7C7" Offset="1"/>
</LinearGradientBrush>
</Ellipse.Stroke>
<Ellipse.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard Storyboard="{StaticResource FlashErrorIcon}"/>
</EventTrigger>
</Ellipse.Triggers>
</Ellipse>
<TextBlock DockPanel.Dock="Right"
ToolTip="{Binding ElementName=myControl,
Path=AdornedElement.(Validation.Errors)[0].ErrorContent}"
Foreground="White"
FontSize="11pt"
Margin="-15,5,0,0" FontWeight="Bold">!
<TextBlock.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard Storyboard="{StaticResource FlashErrorIcon}"/>
</EventTrigger>
</TextBlock.Triggers>
</TextBlock>
<Border BorderBrush="Red" BorderThickness="1">
<AdornedElementPlaceholder Name="myControl"/>
</Border>
</DockPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip"
Value="{Binding RelativeSource={x:Static RelativeSource.Self},
Path=(Validation.Errors)[0].ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>