Visual Basic .NET Language
Wiązanie danych WPF XAML
Szukaj…
Wprowadzenie
W tym przykładzie pokazano, jak utworzyć ViewModel i widok we wzorcu MVVM i WPF, a także jak powiązać oba ze sobą, aby każdy z nich był aktualizowany za każdym razem, gdy zmienia się drugi.
Wiązanie łańcucha w ViewModel z TextBox w widoku
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 można łatwo dodać za pomocą fragmentu kodu wpfdp
(wpisz wpfdp
, a następnie naciśnij dwukrotnie klawisz TAB
), jednak fragment kodu nie jest bezpieczny i nie będzie można go skompilować w 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
Zauważ, że jest to bardzo podstawowy sposób implementacji MVVM i wiązania danych. Bardziej solidną praktyką byłoby użycie platformy takiej jak Unity do „wstrzyknięcia” ViewModel do View.
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow