Visual Basic .NET Language
WPF XAML 데이터 바인딩
수색…
소개
이 예제에서는 MVVM 패턴과 WPF 내에서 ViewModel과 View를 만드는 방법과 두 객체를 서로 바인딩하여 다른 객체가 변경 될 때마다 각각이 업데이트되도록하는 방법을 보여줍니다.
ViewModel의 문자열을 뷰의 TextBox에 바인딩
SampleViewModel.vb
'Import classes related to WPF for simplicity
Imports System.Collections.ObjectModel
Imports System.ComponentModel
Public Class SampleViewModel
Inherits DependencyObject
'A class acting as a ViewModel must inherit from DependencyObject
'A simple string property
Public Property SampleString as String
Get
Return CType(GetValue(SampleStringProperty), String)
End Get
Set(ByVal value as String)
SetValue(SampleStringProperty, value)
End Set
End Property
'The DependencyProperty that makes databinding actually work
'for the string above
Public Shared ReadOnly SampleStringProperty As DependencyProperty = _
DependencyProperty.Register("SampleString", _
GetType(String), GetType(SampleViewModel), _
New PropertyMetadata(Nothing))
End Class
DependencyProperty는 wpfdp
코드 조각 ( wpfdp
입력 한 다음 TAB
키를 두 번 누름)을 사용하여 쉽게 추가 할 수 있지만 코드 조각은 형식에 안전하지 않으며 Option Strict On
아래에서 컴파일되지 않습니다.
SampleWindow.xaml
<Window x:Class="SampleWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:des="http://schemas.microsoft.com/expression/blend/2008"
DataContext="{Binding}"
Loaded="Window_Loaded">
<Grid>
<TextBox>
<TextBox.Text>
<Binding Path="SampleString" />
</TextBox.Text>
</TextBox>
</Grid>
</Window>
SampleWindow.xaml.vb
Class SampleWindow
Private WithEvents myViewModel As New SampleViewModel()
Private Sub Window_Loaded(sender As Object, e As RoutedEventArgs)
Me.DataContext = myViewModel
End Sub
End Class
이것은 MVVM 및 데이터 바인딩을 구현하는 매우 기초적인 방법입니다. 보다 견고한 방법은 Unity와 같은 플랫폼을 사용하여 ViewModel을 View에 "삽입"하는 것입니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow