【WPF 각서】ViewModel과 데이터 바인딩
소개
C#, WPF의 공부를 하고 기억한 것의 기억.
데이터 바인딩이 하고 싶었지만, 처음에는 좀처럼 이해할 수 없었으므로, 나름대로 정리해 본다.
기재하고 있는 코드는 필요한 부분만의 발췌이므로 죄송합니다.
ViewModel
xaml.cs 파일의 클래스가 ViewModel이라고 생각했지만, 아무래도 다른 것 같다.
별도 ViewModel 클래스를 만들 필요가 있다.
MainViewMode.csclass MainViewModel
{
public String BindText { get; set; } = "てきとうな初期値";
}
public인 프로퍼티가 XAML로부터 참조 가능한 프로퍼티가 된다.
XAML과 협력하는 클래스
XAML과 연동하는 클래스의 DataContext
속성에 ViewModel의 인스턴스를 입력합니다.
MainView.xaml.cspublic 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에도 자동적으로 반영된다.
추가
위에서 쓴 것처럼, 자동으로 반영되도록하려면 조금 더 손을 추가해야했기 때문에 별도 기사를 쓴 좋으면 참조하십시오.
Reference
이 문제에 관하여(【WPF 각서】ViewModel과 데이터 바인딩), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TAK_EMI/items/ba85ce1e0b65f57364ad
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
xaml.cs 파일의 클래스가 ViewModel이라고 생각했지만, 아무래도 다른 것 같다.
별도 ViewModel 클래스를 만들 필요가 있다.
MainViewMode.cs
class MainViewModel
{
public String BindText { get; set; } = "てきとうな初期値";
}
public인 프로퍼티가 XAML로부터 참조 가능한 프로퍼티가 된다.
XAML과 협력하는 클래스
XAML과 연동하는 클래스의 DataContext
속성에 ViewModel의 인스턴스를 입력합니다.
MainView.xaml.cspublic 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에도 자동적으로 반영된다.
추가
위에서 쓴 것처럼, 자동으로 반영되도록하려면 조금 더 손을 추가해야했기 때문에 별도 기사를 쓴 좋으면 참조하십시오.
Reference
이 문제에 관하여(【WPF 각서】ViewModel과 데이터 바인딩), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TAK_EMI/items/ba85ce1e0b65f57364ad
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new MainViewModel();
}
}
XAML은 어디에 무엇을 바인드할지 쓴다.
DataContext
를 사용하면, ViewModel에 관한 기술등은 불필요.MainView.xaml
<Grid>
<Label Content="{Binding BindText}" Margin="0,0,0,0"/>
</Grid>
이렇게 쓰면
MainView.DataContext.BindText
와 바인딩된다.완성
완성된 것이 이쪽. 빌드하고 실행했을 뿐.
MainViewModel.BindText
를 동적으로 변경하면, 그것에 맞추어 Label의 Content property에도 자동적으로 반영된다.
추가
위에서 쓴 것처럼, 자동으로 반영되도록하려면 조금 더 손을 추가해야했기 때문에 별도 기사를 쓴 좋으면 참조하십시오.
Reference
이 문제에 관하여(【WPF 각서】ViewModel과 데이터 바인딩), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TAK_EMI/items/ba85ce1e0b65f57364ad
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
위에서 쓴 것처럼, 자동으로 반영되도록하려면 조금 더 손을 추가해야했기 때문에 별도 기사를 쓴 좋으면 참조하십시오.
Reference
이 문제에 관하여(【WPF 각서】ViewModel과 데이터 바인딩), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/TAK_EMI/items/ba85ce1e0b65f57364ad텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)