public partial class MainWindow : Window, INotifyPropertyChanged
{
private ObservableCollection<MyDataClass> m_myList;
public ObservableCollection<MyDataClass> _myList
{
get
{
return m_myList;
}
set
{
m_myList = value;
RaisePropertyChanged("_myList");
}
}
public MainWindow()
{
InitializeComponent();
_myList = new ObservableCollection<MyDataClass>();
comboBox1.DataContext = _myList;
}
private void Button_Click(object sender, EventArgs e)
{
_myList = AnotherClass.SomeMethod();
}
public event PropertyChangedEventHandler PropertyChanged;
public void RaisePropertyChanged(String _Prop)
{
if (PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(_Prop));
}
}
}
Это потому, что вы фактически присваиваете значение свойству, а не обновляете ObservableCollection.
Таким образом, его нужно рассматривать как свойство, и вам нужно реализовать INotifyPropertyChanged.
И, кстати, WCF DataContracts автоматически реализует INotifyPropertyChanged.