Visual Basic .NET Language
Enlace de datos WPF XAML
Buscar..
Introducción
Este ejemplo muestra cómo crear un ViewModel y una Vista dentro del patrón MVVM y WPF, y cómo unir los dos, para que cada uno se actualice cada vez que se cambie el otro.
Enlace de una cadena en el ViewModel a un TextBox en la Vista
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
Se puede agregar fácilmente una wpfdp
usando el fragmento de código wpfdp
(escriba wpfdp
, luego presione la tecla TAB
dos veces), sin embargo, el fragmento de código no es seguro y no se compilará en 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
Tenga en cuenta que esta es una forma muy rudimentaria de implementar MVVM y enlace de datos. Una práctica más sólida sería usar una plataforma como Unity para "inyectar" el ViewModel en la Vista.
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow