... | @@ -74,7 +74,9 @@ XAML 바인딩을 사용하면 아래와 같이 선언하여 의존성을 끊을 |
... | @@ -74,7 +74,9 @@ XAML 바인딩을 사용하면 아래와 같이 선언하여 의존성을 끊을 |
|
```
|
|
```
|
|
##### 3) INotifyPropertyChanged
|
|
##### 3) INotifyPropertyChanged
|
|
속성간에 바인딩을 사용하여 연결하면 실제 데이터가 변경되어도 화면에는 반영되지 않는다.
|
|
속성간에 바인딩을 사용하여 연결하면 실제 데이터가 변경되어도 화면에는 반영되지 않는다.
|
|
|
|
|
|
따라서 이를 ViewModel에서 제어하기 위해 INotifyPropertyChanged를 사용하여 속성 값이 변경을 UI에 알리는 부분을 구현한다.
|
|
따라서 이를 ViewModel에서 제어하기 위해 INotifyPropertyChanged를 사용하여 속성 값이 변경을 UI에 알리는 부분을 구현한다.
|
|
|
|
|
|
모든 ViewModel이 INotifyPropertyChanged를 구현해야하기 때문에 일반적으로 INotifyPropertyChanged를 구현한 ViewModelBase 클래스를 미리 정의해서 사용한다.
|
|
모든 ViewModel이 INotifyPropertyChanged를 구현해야하기 때문에 일반적으로 INotifyPropertyChanged를 구현한 ViewModelBase 클래스를 미리 정의해서 사용한다.
|
|
|
|
|
|
(MVVM Light에서는 INotifyPropertyChanged를 구현해놓은 ViewModelBase 클래스를 제공한다)
|
|
(MVVM Light에서는 INotifyPropertyChanged를 구현해놓은 ViewModelBase 클래스를 제공한다)
|
... | @@ -103,7 +105,9 @@ public class MainViewModel : INotifyPropertyChanged |
... | @@ -103,7 +105,9 @@ public class MainViewModel : INotifyPropertyChanged |
|
}
|
|
}
|
|
```
|
|
```
|
|
##### 4) ICommand
|
|
##### 4) ICommand
|
|
사용자와의 상호작용 처리를 위해서 이벤트 핸들러를 이용하여 코드를 작성하는데, 이는 View에 강한 의존성을 가지게 되고 Code-behind에만 선언가능하다. 이 상호작용 처리를 위해 Command를 사용하는데, ICommand 인터페이스를 사용하여 의존성을 제거할 수 있다.
|
|
사용자와의 상호작용 처리를 위해서 이벤트 핸들러를 이용하여 코드를 작성하는데, 이는 View에 강한 의존성을 가지게 되고 Code-behind에만 선언가능하다.
|
|
|
|
이 상호작용 처리를 위해 Command를 사용하는데, ICommand 인터페이스를 사용하여 의존성을 제거할 수 있다.
|
|
|
|
|
|
Command 를 정의하면 XAML 기능을 이용하여 상호작용 처리가 가능한 모든 컨트롤에 연결할 수 있다.
|
|
Command 를 정의하면 XAML 기능을 이용하여 상호작용 처리가 가능한 모든 컨트롤에 연결할 수 있다.
|
|
|
|
|
|
(MVVM Light에서는 ICommand를 구현해놓은 RelayCommand를 제공한다)
|
|
(MVVM Light에서는 ICommand를 구현해놓은 RelayCommand를 제공한다)
|
... | | ... | |