... | ... | @@ -79,26 +79,26 @@ XAML 바인딩을 사용하면 아래와 같이 선언하여 의존성을 끊을 |
|
|
모든 ViewModel이 INotifyPropertyChanged를 구현해야하기 때문에 일반적으로 INotifyPropertyChanged를 구현한 ViewModelBase 클래스를 미리 정의해서 사용한다. (MVVM Light에서도 ViewModelBase 클래스를 제공한다)
|
|
|
|
|
|
```csharp
|
|
|
public class MainViewModel : INotifyPropertyChanged
|
|
|
public class MainViewModel : INotifyPropertyChanged
|
|
|
{
|
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
|
|
|
|
|
[NotifyPropertyChangedInvocator]
|
|
|
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
|
|
|
{
|
|
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
|
|
}
|
|
|
|
|
|
private string _productName;
|
|
|
public string ProductName
|
|
|
{
|
|
|
get { return _productName; }
|
|
|
set
|
|
|
{
|
|
|
_productName = value;
|
|
|
OnPropertyChanged();
|
|
|
}
|
|
|
}
|
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
|
|
|
|
|
[NotifyPropertyChangedInvocator]
|
|
|
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
|
|
|
{
|
|
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
|
|
}
|
|
|
|
|
|
private string _productName;
|
|
|
public string ProductName
|
|
|
{
|
|
|
get { return _productName; }
|
|
|
set
|
|
|
{
|
|
|
_productName = value;
|
|
|
OnPropertyChanged();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
##### 4) ICommand |