【WPF 각서】ViewModel과 데이터 바인딩

2810 단어 XamlC#WPF

소개



C#, WPF의 공부를 하고 기억한 것의 기억.
데이터 바인딩이 하고 싶었지만, 처음에는 좀처럼 이해할 수 없었으므로, 나름대로 정리해 본다.

기재하고 있는 코드는 필요한 부분만의 발췌이므로 죄송합니다.

ViewModel



xaml.cs 파일의 클래스가 ViewModel이라고 생각했지만, 아무래도 다른 것 같다.
별도 ViewModel 클래스를 만들 필요가 있다.

MainViewMode.cs
class MainViewModel
{
    public String BindText { get; set; } = "てきとうな初期値";
}

public인 프로퍼티가 XAML로부터 참조 가능한 프로퍼티가 된다.

XAML과 협력하는 클래스



XAML과 연동하는 클래스의 DataContext 속성에 ViewModel의 인스턴스를 입력합니다.

MainView.xaml.cs
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        this.DataContext = new MainViewModel();
    }
}

이렇게 하면, DataContext (ViewModel) 의 프로퍼티이 XAML 로부터 참조 가능하게 된다.

XAML



XAML은 어디에 무엇을 바인드할지 쓴다.DataContext 를 사용하면, ViewModel에 관한 기술등은 불필요.

MainView.xaml
<Grid>
    <Label Content="{Binding BindText}" Margin="0,0,0,0"/>
</Grid>

이렇게 쓰면 MainView.DataContext.BindText 와 바인딩된다.

완성



완성된 것이 이쪽. 빌드하고 실행했을 뿐.

MainViewModel.BindText 를 동적으로 변경하면, 그것에 맞추어 Label의 Content property에도 자동적으로 반영된다.

추가



위에서 쓴 것처럼, 자동으로 반영되도록하려면 조금 더 손을 추가해야했기 때문에 별도 기사를 좋으면 참조하십시오.

좋은 웹페이지 즐겨찾기