如何从最初绑定到的视图模型访问内容页面的控件?

问题描述 投票:0回答:1

我想要做的是在视图模型文件中创建和写入所有方法,并且仅将代码放置在自动生成的函数(如 SfDataGrid_SelectionChanged 和其他类似函数)的代码隐藏文件中。因此,当我在视图模型文件中编写代码时,如果我需要访问页面的控件及其属性,我该如何获取它? 此时,视图文件中的 BindingContext 代码如下所示:

<ContentPage.BindingContext>
    <viewmodel:MainViewModel x:Name="vm"/>
</ContentPage.BindingContext>

内容页面的名称是MainPage.cs。现在,在 MainPage.cs 内容页面中有一个名为 grpList 的控件。所以在 MainViewModel.cs 文件中我尝试输入

Groups row = (Groups)grpList.SelectedRow;

当我在视图模型中编写时,甚至找不到 grpList 。但是,如果我将其写入内容页的代码隐藏文件中,则会找到它并且没有问题。

那么如何从页面视图模型访问页面的控件及其属性?

c# xaml data-binding viewmodel
1个回答
0
投票

您将视图模型的属性绑定到控件。视图模型并不意味着了解视图及其控件。

因此,如果您想要 SelectedRow,您可以在视图模型中创建一个属性,然后从视图绑定到该属性。

© www.soinside.com 2019 - 2024. All rights reserved.