如何将命令绑定到Xamarin Forms中的条目“ Unfocused”事件

meh*_*dvd 1 xaml prism xamarin xamarin.forms

我有一个命令(或一段代码),当某个特定的条目失去焦点时我想运行该命令。

我正在使用MVVM,所以我想使用绑定方式来完成此操作,而不是在自己的代码中编写代码Form.xaml.cs

当条目失去其在XAML文件中的焦点时,如何运行命令(或代码段)?

Pau*_*her 8

EventToCommandBehaviorXamarin.Forms 示例中有一个示例(请参见此处)。使用这个可以绑定控件

<Entry>
    <Entry.Behaviors>
        <behaviors:EventToCommandBehavior 
            EventName="Unfocused" 
            Command="{Binding EntryUnfocused}" />
    </Entry.Behaviors>
</Entry>
Run Code Online (Sandbox Code Playgroud)

然后EntryUnfocused在您viewmodel.cs的特定视图的文件类中定义,如下所示:

public class LoginViewModel : XamarinViewModel
{
    public ICommand EntryUnfocused{ get; protected set; } 
    public LoginViewModel()
    {
        EntryUnfocused= new Command(CompletedCommandExecutedAsync);
    }

    private void CompletedCommandExecutedAsync(object param)
    {
     //yourcode...
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您使用的是Prism库,则可以使用它们的实现,该实现会更加成熟(允许您通过指定要传递的参数来映射事件参数),请参见此处

请注意,您必须将行为所在的相应命名空间添加到XAML文件中)。