Databinding

There are 7 entries for the tag Databinding
Binding Radio buttons to an Enum

Essendo una domanda ricorrente credo sia il caso di bloggarla: “Se il mio ViewModel espone una proprietà enumerativa, come posso bindarla ad un insieme di radio buttons ?”. La risposta sta nell’utilizzo di un converter. Partiamo dal ViewModel: 1: public enum Power {Low,Medium,High} 2:  3: public class TheViewModel 4: {...

posted @ Friday, July 3, 2009 12:14 PM | Feedback (2)

Silverlight3: Databinding bug

Sembra che Silverlight3 abbia qualche problema col databinding…, prendiamo una classe Person che implementa INotifyPropertyChanged e supponiamo di volerne editare le proprietà Name e Age. <StackPanel> <TextBox Text="{Binding Path=Name, Mode=TwoWay}" /> <TextBox Text="{Binding Path=Age, Mode=TwoWay}" /> <TextBlock Text="{Binding Name}" /> </StackPanel> nel costruttore del codebehind, come da...

posted @ Saturday, March 28, 2009 4:35 PM | Feedback (0)

[WPF] Binding parametrico(?)

Ieri al termine della mia sessione ai Community Days 2008 Nicolò ha proposto un “intrigante” quesito: In breve: l’obiettivo è quello di cambiare il colore di sfondo di alcune labels in base al testo inserito in una textbox, gestendo il tutto all’interno di un unico style implicito condiviso da tutte le labels. Alla fine, ragionandoci un attimo, sono giunto a questa soluzione che aggira l’impossibilità di usare binding sulla proprietà Value della classe DataTrigger usando un MultiTrigger alimentato con: il valore contenuto della textbox. Il valore della...

posted @ Friday, July 11, 2008 5:39 PM | Feedback (1)

PresentationTraceSources.TraceLevel e Databinding

Capire perchè un binding non funziona come dovrebbe in WPF non è molto semplice, immaginiamo questa semplice situazione: XAML <Window x:Class="WPF_Databind.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="300"> <Grid> <TextBox Text="{Binding Path=CustomerName}" Height="23" Margin="87,65,71,0" Name="textBox1" VerticalAlignment="Top" /> </Grid> </Window> Codice namespace WPF_Databind { public partial class Window1 : Window ...

posted @ Friday, March 28, 2008 11:28 AM | Feedback (0)

[WPF] Passing a value to a Binding converter

A volte una domanda a prima vista banale in realtà si rileva più complicata del previsto, nello specifico la domanda era: Come posso recuperare un controllo all'interno di un mio custom ValueConverter?. La prima risposta è stata quella di passare un riferimento all'elemento host attraverso ConverterParameter e poi usare il metodo FindName : ovvero usare qualcosa tipo: <Window.Resources> <local:MyMultiValueConverter x:Key="mc" /> </Window.Resources> ... <TextBox Text="{Binding Path=Title, Converter={StaticResource mc}, ConverterParameter={Binding...

posted @ Wednesday, October 31, 2007 8:25 AM | Feedback (0)

[WPF] Multithreaded Databinding

Uno degli aspetti meno conosciuti del databinding di WPF è la naturale gestione degli aggiornamenti nel caso questi avvengano da un thread secondario.Supponiamo di avere una fonte dati che quando il metodo QueryValue viene invocato aggiorni i propri dati attraverso un thread secondario in modo da non bloccare l'intera applicazione. class MyData:INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public int Value { get; set; } public void QueryValue() { ThreadPool.QueueUserWorkItem(delegate(object o) ...

posted @ Saturday, October 20, 2007 1:44 PM | Feedback (3)

Linq To SQL e Databinding

A quanto pare LINQ To SQL, almeno nella beta2, non ama molto il databinding.Prediamo un esempio banale: mostrare il contenuto della tabella Customers di Northwind e aggiungere un nuovo cliente.Supponendo di avere già creato attraverso il designer di Visual Studio 2008 le varie entities il codice da scrivere è: 1: NwDataContext nw = new NwDataContext(@"Data Source=VMXP\SQLEXPRESS;Initial Catalog=Northwind"); 2:   3: public Form1 () 4: { 5: InitializeComponent(); 6: ...

posted @ Thursday, September 6, 2007 4:23 PM | Feedback (3)