C# 从MVVM到Xamarin主页的信息中心
我需要使用C# 从MVVM到Xamarin主页的信息中心,c#,xamarin,xamarin.forms,viewmodel,C#,Xamarin,Xamarin.forms,Viewmodel,我需要使用Xamarin中的MessagingCentre来允许我的ViewModel向我的主页发送消息,作为按钮命令的一部分 在MainPage.xaml.cs中,我订阅了messagecenter,查找一条“Focus”消息,然后将表单的焦点设置为一个名为txtFirstName的条目控件 public MainPage() { InitializeComponent(); BindingContext = new ViewModel();
Xamarin
中的MessagingCentre
来允许我的ViewModel向我的主页发送消息,作为按钮命令的一部分
在MainPage.xaml.cs
中,我订阅了messagecenter
,查找一条“Focus”消息,然后将表单的焦点设置为一个名为txtFirstName的条目控件
public MainPage()
{
InitializeComponent();
BindingContext = new ViewModel();
MessagingCenter.Subscribe<MainPage>(this, "Focus", (sender) => { txtFirstName.Focus(); });
}
public主页()
{
初始化组件();
BindingContext=新的ViewModel();
订阅(这个,“焦点”,(发送方)=>{txtFirstName.Focus();});
}
在我的ViewModel中,命令是:
private void ClearFormCommand(object obj)
{
FirstName = string.Empty;
Surname = string.Empty;
Age = string.Empty;
AboutMe = string.Empty;
MessagingCenter.Send<MainPage>(this, "Focus");
}
private void ClearFormCommand(object obj)
{
FirstName=string.Empty;
姓氏=字符串。空;
Age=string.Empty;
AboutMe=string.Empty;
发送(这是“焦点”);
}
但是,MessagingCentre.Send
行中的此
有错误
参数1:无法从“ViewModel”转换为“AppName.MainPage”
要将消息发送到
主页
,我需要在VM中用什么替换此
?将
常规替换为您的viewmodel类型viewmodel
(对于订阅和发送呼叫)首先,此位于MessagingCenter.send(此“焦点”)是主页的实例。根据您的代码,似乎发送和订阅都可以
在MainPage构造函数中,您将Bindingcontext分配给ViewModel的实例。这里的代码可疑。只需再次调试代码,并尝试找出实际的根本原因或提供完整的代码
有关信息中心的更多信息,请阅读
希望这对你有帮助。
谢谢关闭-我不得不在
主页
中将其更改为。订阅
,然后在我的ViewModel中将其更改为。发送(此“焦点”)
。很好,但正如您的例外情况所述,您输入的类型错误。因此,请始终查看方法签名,您下次可能会自己发现:)