<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1"
Title="ManualUpdateTarget" Height="135" Width="200">
<Window.Resources>
<local:Person x:Key="Tom" Name="Tom" Age="11" />
</Window.Resources>
<StackPanel DataContext="{StaticResource Tom}">
<TextBlock Margin="5" VerticalAlignment="Center">Name:</TextBlock>
<TextBox Margin="5" Name="nameTextBox" Text="{Binding Path=Name}" />
<TextBlock Margin="5" VerticalAlignment="Center">Age:</TextBlock>
<TextBox Margin="5" Name="ageTextBox" Text="{Binding Path=Age}" />
<Button Margin="5" Width="75" Name="birthdayButton">Birthday</Button>
</StackPanel>
</Window>
//File:Window.xaml.vb
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Data
Imports System.Windows.Documents
Imports System.Windows.Input
Imports System.Windows.Media
Imports System.Windows.Media.Imaging
Imports System.Windows.Shapes
Imports System.ComponentModel
Namespace WpfApplication1
Public Class Person
Private m_name As String
Public Property Name() As String
Get
Return Me.m_name
End Get
Set
If Me.m_name = value Then
Return
End If
Me.m_name = value
End Set
End Property
Private m_age As Integer
Public Property Age() As Integer
Get
Return Me.m_age
End Get
Set
If Me.m_age = value Then
Return
End If
Me.m_age = value
End Set
End Property
Public Sub New()
End Sub
Public Sub New(name As String, age As Integer)
Me.m_name = name
Me.m_age = age
End Sub
End Class
Public Partial Class Window1
Inherits System.Windows.Window
Public Sub New()
InitializeComponent()
AddHandler Me.birthdayButton.Click, AddressOf birthdayButton_Click
End Sub
Private Sub birthdayButton_Click(sender As Object, e As RoutedEventArgs)
Dim person As Person = DirectCast(Me.FindResource("Tom"), Person)
person.Age = person.Age + 1
BindingOperations.GetBindingExpression(ageTextBox, TextBox.TextProperty).UpdateTarget()
Console.WriteLine(person.Name)
Console.WriteLine(person.Age)
End Sub
End Class
End Namespace
|