什么是在VB.net中绑定WPF按钮单击的正确方法

时间:2014-11-16 05:06:49

标签: wpf vb.net events binding

我试图找出如何绑定vb.net中按钮的单击操作以获取WPF

以下是WPF代码的一部分

WPF:

<TabItem Name="tab_emailSender>
    <TextBox Text="{Binding Path=address}" />
    <Button Command="{Binding Path=sendTestMessage}"
</TabItem>

VB

Class MainWindow
    Dim thisMessage as new Message

    Private Sub main() Handles Me.Loaded
        tab_emailSender.DataContext = thisMessage
    End Sub
End Class

Class Message
   Public Property address as string

   Public Sub sendTestMessage()
       msgbox("it worked!")
   End Sub
End Class

我能够绑定文本框的文本,但我不知道如何将按钮的click事件绑定到sendTestMessage子。

1 个答案:

答案 0 :(得分:-1)

为了处理按钮的click事件,如果要关注MVVM,则需要在ViewModel上创建ICommand属性。 ICommand是接口,所以你可以做这样的事情(抱歉C#):

public class Message: ICommand
{
    public address { get; set; }


    public bool CanExecute(Object parameter)
    {
        return true; 
    }
    public void Execute(Object parameter)
    {
        //Do the logic here.
    }
}

和xaml(就你的DataContext而言是Message类型的实例):

<Button Command="{Binding}" />

当然你可以自己实现接口,在另一个类上实现接口等。(我已经在Message类中实现了它,因为它在这里更简单),但你也可以发现使用DelegateCommand或者RelayCommand。这些类将阻止您在每次需要新命令时重新实现所涉及的接口。