【发布时间】:2020-08-05 14:35:42
【问题描述】:
所以我对整个 MVVM 还是很陌生。我非常了解它的基础知识。我有一个可以正常工作的示例,但我正在尝试将其更改为 MVVM 样式。我只是尝试不同的例子,以便学习。
(LoginPage.xaml)
在 XAML 方面,我有一个带有点击手势的标签。很单身
<!-- Existing Tab -->
<Label x:Name="labelName"
Grid.Column="0"
Style="{StaticResource CenteredTextTitle}"
Text="Log In">
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="SelectorOption_Tapped" />
</Label.GestureRecognizers>
</Label>
LoginPage.xaml.cs 页面
我可以通过创建一个点击函数来访问它。
private async void SelectorOption_Tapped(object sender, EventArgs e)
{
if (!(sender is Xamarin.Forms.View view)) return;
int index = Grid.GetColumn(view);
...
}
现在我正在尝试将其更改为 MVVM.. 所以 XAML 保持不变
在 ViewModel 页面上 loginpageviewmodel.cs 页面
public LoginPageViewModel()
{
btnSubmit_Clicked = new Command(SubmitClicked);
}
public ICommand btnSubmit_Clicked { get; set; }
private void SubmitClicked(object parameter)
{
if (!(parameter is Xamarin.Forms.View view)) return;
var index = Grid.GetColumn(view);
}
我可以运行函数 submitclicked。但我不能传递参数。它始终为空。 我想根据用户选择从我拥有的网格中获取列。它以原始方式工作正常,但如果我尝试将其更改为 MVVM,我无法通过视图表单来获取 getcolumn .. 反正我可以通过吗?
【问题讨论】:
-
我的解决方案对您有用吗?如果是,请您接受(点击此答案左上角的☑️),以便我们可以帮助更多有相同问题的人:)。
-
是的.. 工作感谢您的帮助.. 接受它.. 再次感谢您
标签: xamarin mvvm parameters