Xamarin.Forms访问代码中用标记编写的控件

tec*_*hno 9 c# mono android xamarin.forms

我试图将一些项添加到Listview,我在xaml文件中使用Xamarin.Forms标记添加.可以通过单击事件挂钩来访问该按钮.但由于列表视图为空,我需要ondraw类似winforms 的事件,以便在绘制时可以挂钩.

在此输入图像描述

在XAML文件中,我有:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="ButtonXaml.ButtonXamlPage">
             <StackLayout>
  <Button Text="Tap for click count!"
    BorderWidth="10"
    TextColor="Red"
    HorizontalOptions="Center"
          Clicked="OnButtonClicked" />
          <ListView 
          HorizontalOptions="Center"

          />

   </StackLayout>
</ContentPage>
Run Code Online (Sandbox Code Playgroud)

在我的.cs文件中

using System;
using Xamarin.Forms;

namespace ButtonXaml
{
    public partial class ButtonXamlPage
    {
        int count = 0;

        public ButtonXamlPage()
        {
            InitializeComponent();
        }

        public void OnButtonClicked(object sender, EventArgs args)
        {
            ((Button)sender).Text = "You clicked me";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我应该挂钩Listview中的事件,还是可以Resource.getElementbyID像我们在android中那样做

Jas*_*son 23

要在代码隐藏中访问Forms控件,您需要使用该x:Name属性为其指定名称

在XAML中:

<ListView HorizontalOptions="Center" x:Name="MyList" />
Run Code Online (Sandbox Code Playgroud)

在代码中:

MyList.ItemsSource = myData;
Run Code Online (Sandbox Code Playgroud)

  • 谢谢。它可以工作,但是自动完成功能无法识别它。 (2认同)

Tho*_*röm 10

Xamarin中有一个错误,VS没有看到定义的x:名称 http://forums.xamarin.com/discussion/25409/problem-with-xaml-x-name-and-access-from-code-behind

假设您已在XAML中定义了一个图像:

<Image x:Name="myImageXName" />
Run Code Online (Sandbox Code Playgroud)

那么这应该在代码后面工作:

this.FindByName<Image>("myImageXName");
Run Code Online (Sandbox Code Playgroud)