1
当为使用MvvmLight和Xamarin表单的所有三个移动平台开发时,对于不支持命令模式的事件,视图中的事件绑定到视图模型中的命令的建议方式是什么?有没有可能使用EventToCommand?使用Mvvmlight和xamarin表单的EventToCommand
谢谢!
当为使用MvvmLight和Xamarin表单的所有三个移动平台开发时,对于不支持命令模式的事件,视图中的事件绑定到视图模型中的命令的建议方式是什么?有没有可能使用EventToCommand?使用Mvvmlight和xamarin表单的EventToCommand
谢谢!
不确定MVVMLight,但您可以做的是定义在相关ViewModel中实现的接口中的事件(IPageLifeCycleEvents)。在视图中,您可以将BindingContext设置为IPageLifeCycleEvents类型的实例,并通过接口将视图中的事件传递给ViewModel。例如。
public interface IPageLifeCycleEvents
{
void OnAppearing();
void OnDisappearing();
void OnLayoutChanged();
}
public class SampleView : ContentPage
{
public BaseView() {
var lifecycleHandler = (IPageLifeCycleEvents) this.BindingContext;
base.Appearing += (object sender, EventArgs e) => {
lifecycleHandler.OnAppearing();
};
base.Disappearing += (object sender, EventArgs e) => {
lifecycleHandler.OnDisappearing();
};
base.LayoutChanged += (object sender, EventArgs e) => {
lifecycleHandler.OnLayoutChanged();
};
}
}
public class SampleViewModel : IPageLifeCycleEvents
{
#region IPageLifeCycleEvents Methods
public void OnAppearing()
{
//Do something here
}
public void OnDisappearing()
{
//Do something here
}
public void OnLayoutChanged()
{
//Do something here
}
#endregion
}
在我的实际实现中,由于IOC和Base模型的使用,我使用稍微不同的设置。
祝你好运