August 2007 Blog Posts

Stranezze di VB9...

Ieri mi sono imbattuto in un altra "stranezza" di VB9: mettiamo a confronto lo stesso codice C#3.0 vs VB9 C#3.0 VB9 Come potete "ammirare" è apparso un fantomatico overload (index As Integer) as Char.In realtà l'overload non esiste  ma è l'intellisense che, considerato che VB permette di invocare metodi senza usare le parentesi, decide di visualizzare l'indexer di string.In realtà già VB2005 permette di scrivere: 1: Dim o As Object = "ciao" 2: Dim c As Char = o.ToString(1) ma non apparendo nell'intellisense il "danno" era limitato.Può essere che nella RTM questa "novità" venga...

posted @ Monday, August 27, 2007 10:15 AM | Feedback (2)

[WPF] Styles e custom triggers conditions

Come sapete ad uno style è possibile associare un trigger, l'esempio che segue, ad esempio, cambia il colore di sfondo della textbox quando questa ha il focus. 1: <Style TargetType="{x:Type TextBox}"> 2: <Setter Property="FontFamily" Value="Tahoma" /> 3: <Setter Property="Margin" Value="10" /> 4: <Style.Triggers> 5: <Trigger Property="IsFocused" Value="True"> 6: <Setter Property="Background" Value="LightGreen" /> 7: </Trigger> 8: </Style.Triggers> 9: </Style> A questo punto la domanda è: Come faccio a impostare un trigger con una condizione che...

posted @ Saturday, August 25, 2007 7:41 PM | Feedback (0)

LINQ e INotifyPropertyChanging

INotifyPropertyChanged è ormai di casa per chi usa databinding sopratutto per chi lo fa con WPF, con LINQ è in arrivo un altra interfaccia denominata INotifyPropertyChanging. Mentre la prima ha lo scopo di informare il motore di binding che una determinata proprietà è stata modificata e che quindi l'eventuale controllo ad essa bindato deve essere aggiornato, la seconda serve per ottimizzare il meccanismo di change tracking implementato da LINQ per determinare se un entità è stata modificata e quindi inviare il comando SQL di aggiornamento quando invochiamo DataContext.SubmitChanges(). In assenza di questa interfaccia quando recuperiamo delle entities via DataContext come nell'esempio che segue: ...

posted @ Monday, August 13, 2007 8:48 PM | Feedback (0)

[WPF] Le inconsistenze di Cider...

Prendete questo frammento di XAML generato da Cider, a questo punto vi chiedo: Se premo btn che succede?   1: <Grid> 2: <Button Name="btn">Button</Button> 3: </Grid>La risposta è "dipende" se il progetto è VB9 allora potrebbe essere eseguito dell'eventuale codice perchè il default handler generato è dichiarato in questo modo: 1: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click 2: ... 3: End Sub Ovviamente C# genera questo XAML: ...

posted @ Thursday, August 2, 2007 6:41 PM | Feedback (0)