I have a custom control which is inherited from TextBox control.
I would like to implement the INotifyPropertyChanged interface in my custom control.
Do it like I said in the comments.
It doesnt work like you did. Just create an extra class and implement Notification Interface there and apply this class to the DataContext of the UserControl. And it will work like you need.
public partial class W3 : UserControl
{
WeatherViewModel model = new WeatherViewModel();
public W3()
{
InitializeComponent();
this.DataContext = model;
}
public void UpdateUI(List data, bool isNextDays)
{
model.UpdateUI(data, isNextDays);
}
}
class WeatherViewModel : INotifyPropertyChanged
{
public void UpdateUI(List data, bool isNextDays)
{
List weatherInfo = data;
if (weatherInfo.Count != 0)
{
CurrentWeather = weatherInfo.First();
if (isNextDays)
Forecast = weatherInfo.Skip(1).ToList();
}
}
private List _forecast = new List();
public List Forecast
{
get { return _forecast; }
set
{
_forecast = value;
OnPropertyChanged("Forecast");
}
}
private WeatherDetails _currentWeather = new WeatherDetails();
public WeatherDetails CurrentWeather
{
get { return _currentWeather; }
set
{
_currentWeather = value;
OnPropertyChanged("CurrentWeather");
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}