C# Xamarin表单覆盖视图模型中的OnSizeAllocated方法
我正在xamarin forms项目中使用Prism。目前我已在视图类中重写OnSizeAllocated方法。如何在视图模型中实现OnSizeAllocated方法?换句话说,是否可以在视图模型中重写OnSizeAllocated方法 这是我想要实现的一段代码:-C# Xamarin表单覆盖视图模型中的OnSizeAllocated方法,c#,mvvm,xamarin.forms,prism,C#,Mvvm,Xamarin.forms,Prism,我正在xamarin forms项目中使用Prism。目前我已在视图类中重写OnSizeAllocated方法。如何在视图模型中实现OnSizeAllocated方法?换句话说,是否可以在视图模型中重写OnSizeAllocated方法 这是我想要实现的一段代码:- private double width = 0; private double height = 0; protected override void OnSizeAllocated
private double width = 0;
private double height = 0;
protected override void OnSizeAllocated(double width, double height)
{
try
{
if (App.vw_CurrentPage == "Bandwidth")
{
base.OnSizeAllocated(width, height); //must be called
if (this.width != width || this.height != height)
{
this.width = width;
this.height = height;
double dEntryWidth = (width / 11) * 7;
double dEntryWidth1 = (width / 9) * 6;
double dGridHeight = height * 0.352;
txtBandwidthHotel.WidthRequest = dEntryWidth1;
}
}
}
catch (Exception ex)
{
}
}
您的
viewmodel
不知道有关视图的任何信息
,因此它如何能够调用onsizeallocated
。我将创建一个接口IViewModelBase
,并拥有一个名为OnSizeAllocated
的方法,视图将调用该方法。如果不了解您的目标是什么,就如何实现目标向您提供适当的建议确实非常困难。但是,我要强调的是,您的ViewModel永远不应该知道有关视图的任何信息。正确的MVVM模式可以使视图和视图模型之间的耦合非常松散。这是我的目标…当设备改变方向时,OnSizeAllocated方法会触发。我想改变尺寸(高度和宽度)当设备改变方向时,会显示一些图标。我希望图标在横向和纵向模式下以不同的大小显示。@DanS.u可以分享一些关于如何使用界面实现它的代码吗?@user1Yourviewmodel
不知道有关视图的任何信息,因此它将如何调用onsizeallocated
。我将创建一个接口IViewModelBase
,并拥有一个名为OnSizeAllocated
的方法,视图将调用该方法。如果不了解您的目标是什么,就如何实现目标向您提供适当的建议确实非常困难。但是,我要强调的是,您的ViewModel永远不应该知道有关视图的任何信息。正确的MVVM模式可以使视图和视图模型之间的耦合非常松散。这是我的目标…当设备改变方向时,OnSizeAllocated方法会触发。我想改变尺寸(高度和宽度)当设备改变方向时,会显示一些图标。我希望图标在横向和纵向模式下以不同的大小显示。@DanS.u能否分享一些关于如何使用界面实现它的代码?@user1