Σ' εμένα παίζει χωρίς πρόβλημα! Έφτιαξα ένα project σε Silverlight 3, με το ListBox όπως στο πρώτο παράδειγμα και στο code behind:
public partial class MainPage : UserControl
{
public List<Option> Options
{
get;
set;
}
public MainPage()
{
FillOptions();
InitializeComponent();
OptionsListBox.DataContext = this;
}
public void FillOptions()
{
Options=new List<Option>();
Options.Add(new Option{Text="aaa",IsSelected=false});
Options.Add(new Option { Text = "bbb", IsSelected = true });
Options.Add(new Option { Text = "ccc", IsSelected = false });
}
}
Η Option είναι η παρακάτω
public class Option:INotifyPropertyChanged
{
private string _Text;
public string Text
{
get { return _Text;}
set { _Text = value;
NotifyPropertyChanged("Text");
}
}
private bool _IsSelected;
public bool IsSelected
{
get { return _IsSelected; }
set { _IsSelected = value;
NotifyPropertyChanged("IsSelected");
}
}
public event PropertyChangedEventHandler PropertyChanged;
public void NotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this,
new PropertyChangedEventArgs(propertyName));
}
}
}
Τα radio buttons μου παίζουν κανονικά. Παίζαν κανονικά και όταν δοκίμασα με OneWay binding, και χωρίς INotifyPropertyChanged, και με ObservableCollection. Στο τέλος τα μετέτρεψα όλα έτσι ώστε να είναι όσο το δυνατόν πιο κοντά στο παράδειγμα του Δημήτρη και τα Radiobuttons δουλεύουν πάντα σωστά.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos