【发布时间】:2012-10-16 23:47:59
【问题描述】:
我有一个文本框和一个按钮。 Button Command 应该改变绑定到 TextBox 的属性。
但我在命令执行后看不到任何视觉变化。 我认为与 wpf 绑定有关的简单问题
请帮我解决这个问题
应用来源:
<UserControl.DataContext>
<local:SampleViewModel />
</UserControl.DataContext>
<Grid>
<StackPanel>
<TextBox Height="23" Width="120" Text="{Binding MyName}" />
<Button Content="Click" Command="{Binding ButtonCommand}" />
</StackPanel>
</Grid>
视图模型:
Private _myName As String
Public Property MyName As String
Get
Return _myName
End Get
Set(value As String)
_myName = value
OnPropertyChanged("MyName")
End Set
End Property
Public _buttonCommand As DelegateCommand
Public ReadOnly Property ButtonCommand As DelegateCommand
Get
Return If(_buttonCommand IsNot Nothing, _buttonCommand,
New DelegateCommand(AddressOf Execute, AddressOf CanExecute))
End Get
End Property
Private Sub Execute()
MyName = "Executed"
End Sub
Private Function CanExecute() As Boolean
Return True
End Function
Public Event PropertyChanged As PropertyChangedEventHandler
Private Sub OnPropertyChanged(propertyName As String)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName))
End Sub
【问题讨论】:
-
您是否尝试在 Execute() 中设置断点?
-
能否尝试在
Execute设置断点并查看它是否已执行? -
MyName 不需要是 Observable 的吗?
-
@Garrett:我无法重现此问题。这是您实际代码的精简版吗?
-
@sixlettervariables :我也无法重现该问题。我猜其他地方有问题。
标签: wpf vb.net data-binding mvvm