如何使用 Xamarin 表单以编程方式在现有网格上添加按钮或标签?

skt*_*skt 2 c# wpf xaml xamarin xamarin.forms

我是 Xamarin 表单的新手。我的要求是这样的。Grid我想根据现有(如下代码)Xamarin.Form按需动态添加按钮或自定义按钮或标签等(代码隐藏) 。但我不知道如何在现有的Grid类似项目上添加项目。我已经尝试了很多方法来找到任何样本,但没有成功。

我的 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"
                      xmlns:Status="clr-namespace:SourceCode.Mobile.UI.StatusDetails"                
                     x:Class="SourceCode.Mobile.UI.ConsumableScreen">
    <ContentPage.Content>

        <Grid x:Name="MainGrid" Padding="0" Margin="0,0,0,0" RowSpacing="1" ColumnSpacing="1" BackgroundColor="White">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"></ColumnDefinition>
                <ColumnDefinition Width="*"></ColumnDefinition>
                <ColumnDefinition Width="*"></ColumnDefinition>
            </Grid.ColumnDefinitions>

            <!--   These below button should be from code behind dynamically -->

            <Button  Grid.Row="0" Grid.Column="0" Text="Device A" WidthRequest="150" HeightRequest="50" HorizontalOptions="Center" VerticalOptions="Center" BackgroundColor="White" Clicked="Button_1_Clicked"></Button>
            <Button  Grid.Row="0" Grid.Column="1" Text="Device B" WidthRequest="150" HeightRequest="50" HorizontalOptions="Center" VerticalOptions="Center" BackgroundColor="White" Clicked="Button_2_Clicked"></Button>
            <Button  Grid.Row="0" Grid.Column="2" Text="Device C" WidthRequest="150" HeightRequest="50" HorizontalOptions="Center" VerticalOptions="Center" BackgroundColor="White" Clicked="Button_3_Clicked"></Button>
        </Grid>

    </ContentPage.Content>
</ContentPage>
Run Code Online (Sandbox Code Playgroud)

代码隐藏

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace SourceCode.Mobile.UI
{
    [XamlCompilation(XamlCompilationOptions.Compile)]
    public partial class ConsumableScreen : ContentPage
    {            

        public ConsumableScreen( )
        {
            InitializeComponent();  
        }   

    }
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我如何从代码隐藏的现有单元格上创建Button或任何其他控件Label,例如等。TextBoxGrid

提前致谢。

苏希尔

mm8*_*mm8 5

尝试这个:

Button button = new Button();
button.Text = "Device B";
button.Clicked = Button_2_Clicked;
button.WidthRequest = 150.0;
button.HeightRequest = 50.0;
button.HorizontalOptions = Xamarin.Forms.LayoutOptions.Center;
button.VerticalOptions = Xamarin.Forms.LayoutOptions.Center;
button.Color = Xamarin.Forms.Color.White;
Grid.SetRow(button, 0);
Grid.SetColumn(button, 1);
MainGrid.Children.Add(button);
Run Code Online (Sandbox Code Playgroud)