SilverLight 3.0
Ho speso qualche ora di lavoro per individuare un problema un po subdolo. In una chiamata ad un WebService un parametro stringa contiene il carattere ‘\’, tutto bene se il client SilverLight proviene dallo stesso dominio del web service. Il problema nasce quando si è in uno scenario cross domain in cui il carattere ‘\’ porta all’odiosa eccezione: InnerException = {System.Exception ---> System.Exception: Exception from HRESULT: 0x80000012 at System.Net.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) at System.Net.BrowserHttpWebRequest.<>c__DisplayClass5.<EndGetResponse>b__4(Object send… La soluzione è semplice, usare HttpUtility.UrlEncode(theUrlWithWrongChar));una buona abitudine da seguire sempre!
Technorati Tags: SilverLight
Supponiamo di voler variare, il colore di fondo delle colonne, per meglio evidenziare l’andamento di un grafico, (cose che si inventano quelli del marketing per capirsi, nulla che abbia un senso nella teoria dei grafici). Essendo una richiesta pittoresca in tutti i sensi, ci si deve affidare ai template del Chart per sperare di ottenere qualcosa di interessante e con poco sforzo. Prima di tutto andiamo a creare un Model che ci faciliti la vita a livello di View 1: public class...
L’allinemento del contenuto delle celle della DataGrid, può essere ottenuto andando a modificare il template della DataGridCell. Si può generare una copia utilizzando Blend. conviene generarla nelle risorse del controllo e dargli un nome ad esempio DataGridCellBaseStyle nello style generato ci sono due righe interessanti 1: <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
2: ...
3: ...
4: <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding...
Questo semplice converter
1: public class DateConverter : IValueConverter
2: {
3: public object Parameter { get; set; }
4:
5: #region IValueConverter Members
6:
7: public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
8: {
9: if (value == null)
10: {
...
il tool è qui C:\Program Files\Microsoft SDKs\Silverlight\v3.0\Tools Technorati Tags: Silverlight 3.0
E’ uso comune legare la proprietà Visibility di un controllo ad una qualche proprietà di tipo Boolean dei dati, un esempio ben fatto è qui Ovviamente non è l’unico modo per farlo, e di solito creo una property di tipo Visibility public System.Windows.Visibility HasPublic { get; set; }
che può essere direttamente collegata, in questo esepmio, ad una CheckBox
<CheckBox IsChecked="{Binding Public, Mode=TwoWay}" Visibility="{Binding HasPublic}" />
tutto questo è molto semplice ed elegante se si è fatto un buon MVVM, e la proprietà HasPublic dove va ? ;-)
Technorati Tags: SilverLight,WPF,MVVM
Expression Blend usa il namespace d per assegnare comportamenti a design time, ad esempio in uno UserControl SilverLight: <UserControl ... xmlns:vm="clr-namespace:DocumentViewer.ViewModel"xmlns:d="http://schemas.microsoft.com/expression/blend/2008" d:DesignWidth="640" d:DesignHeight="480"><UserControl.Resources> <vm:DocumentVM x:Key="viewmodel" /></UserControl.Resources>
possiamo sfruttare la proprietà d:DesignInstance insieme a d:DataContext per istruire Blend a creare una istanza della classe indicata:
<Grid x:Name="LayoutRoot" DataContext="{StaticResource viewmodel}" d:DataContext="{d:DesignInstance vm:DocumentVMMock, IsDesignTimeCreatable=True}">
l’aspetto interessante è che a run time il data context è assegnato alla view model DocumentVM, mentre a design time è assegnata a DocumentVMMock, che dai nomi potete immaginare cosa fanno :D, senza necessita...
con una premessa del genere: …including a keynote from Scott Guthrie and presentations from Tim Heuer, Brad Abrams, Karl Shifflett and other community leaders due giornate 17 Settembre e 3 Ottobre a cui non si può certo mancare, ovviamente per chi come me non pensa di andare a Seattle e New York, la può seguire comodamente dalla poltrona di casa ;) iscrizioni e dettagli dell’agenda: http://www.msdnevents.com/firestarter/index.html
la notizia è un po’ vecchia ma se rispettano la data del 10 luglio mi toccherà portare il portatile in spiaggia e studiare… ;)