【发布时间】:2020-03-06 15:07:29
【问题描述】:
我正在使用 c# 创建一个 Xamarin.Forms 应用。
Page 中有一个 Button,我想在 StackLayout 中添加一个新的 Label,即在Main Page 中单击按钮。
我尝试在 XAML 文件中设置StackLayout public 的FieldModifier 属性,但没有成功...
这是布局代码(我想将标签添加到MainStackLayout)和按钮点击的cs方法:
<ContentPage.Content>
<ScrollView>
<StackLayout BackgroundColor="white">
<StackLayout Orientation="Horizontal" x:Name="MainStackLayout" x:FieldModifier="public" >
</StackLayout>
<Button
Text="Add Counter"
BackgroundColor="darkgreen"
HorizontalOptions="FillAndExpand"
CornerRadius="0"
HeightRequest="80"
TextColor="white"
FontAttributes="Bold"
x:Name="AddCounter_btn"
Clicked="AddCounter_btn_Clicked"
>
</Button>
</StackLayout>
</ScrollView>
</ContentPage.Content>
private void StartCount_btn_Clicked(object sender,EventArgs e)
{
Label NCounterName =new Label();
NCounterName.Text = counter_txt.Text.ToString();
Label NCounterNumber = new Label();
NCounterNumber.Text = "0000";`enter code here`
}
【问题讨论】:
-
当您单击按钮时,您希望 NCounterName 和 NCounterNumber 都添加到 MainStackLayout 中吗?
-
而且,您的意思是 AddCounter_btn_Clicked 而不是 StartCount_btn_Clicked?
-
直接从另一个页面修改一个视图通常是一个非常糟糕的想法。使用 MessagingCenter 来执行此操作会更好。
-
您的问题解决了吗?
标签: c# xamarin xamarin.forms