如何让C#代码从.NET MAUI应用程序中的xaml文件识别控件?

ejk8hzay  于 2023-08-01  发布在  C#
关注(0)|答案(1)|浏览(155)

我在MainPage.xaml文件中有一个checkbox控件,如下所示:

<CheckBox x:Name="chkViewAll" Color="Black"/>

字符串
在我的MainPage.xaml.cs文件中,我有一个方法设置为

public static DataTable GetPasswrds()


现在我将方法设置为静态的原因是因为这将在程序首次启动时运行,并且它位于MainPage文件中。这样我就不必先声明一个对象来使用它,因为它所在的文件会导致错误。我的问题是,在这个方法中,我需要访问前面提到的复选框的IsChecked属性。但是因为我已经将该方法设置为静态的,所以它不会识别它。但是如果我删除static,是的,它会识别它,但是当程序第一次运行时,我会得到一个全局错误,因为我必须在使用这个方法之前声明MainPage,这将是多次声明它。
那么,我如何才能让MainPage.xaml.cs中的这个静态方法识别这个复选框呢?
或者有没有某种绑定可以完成?

smdncfj3

smdncfj31#

使用static修饰符声明一个静态成员,它属于类型本身而不是特定的对象。
static函数与常规(示例)函数不同,它不与类的示例相关联。
static类是一个只能包含static成员的类,因此不能被示例化。
如何让C#代码从.NET MAUI应用程序中的xaml文件识别控件?
根据您的描述,我认为您在这里使用static不合适。
如果要从xaml文件中识别控件,可以直接使用x:Name属性(例如chkViewAll.IsChecked)。
可以参考以下代码:

public partial class MainPage : ContentPage 
{

      public MainPage()
      {
            InitializeComponent();

          GetPasswrds();
    }

    public void GetPasswrds() {

        if (chkViewAll!=null)
        {
            if (chkViewAll.IsChecked)
            {
                System.Diagnostics.Debug.WriteLine("The starus is checked");
            }
            else {
                System.Diagnostics.Debug.WriteLine("The starus is not checked");

            }
        }
    }
}

字符串

相关问题