Не уверен в MVVMLight, но что вы можете сделать, это определить события в интерфейсе (IPageLifeCycleEvents), которые реализованы в соответствующей ViewModel. Внутри представления вы должны установить 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.
Удача