c# - Xamarin Forms在按钮按下时将视图添加到页面?
问题描述
嗨,我有一个视图,它是一个可折叠列表,我希望能够按下一个按钮,上面写着添加另一个,然后它在当前视图下方添加另一个视图。这可以在 Xamarin Forms 中完成吗?
所以每次按下一个按钮时,添加另一个按钮:
<local:TimeSheetAccordion HeaderText="Customer #1" BackgroundColor="#FAFAFA" Padding="20, 20, 20, 20" />
页面代码:
<ScrollView>
<StackLayout Padding="20, 20, 20, 20">
<local:TimeSheetAccordion HeaderText="Customer #1" BackgroundColor="#FAFAFA" Padding="20, 20, 20, 20" />
<local:TimeSheetAccordion HeaderText="Customer #2" BackgroundColor="#FAFAFA" Padding="20, 20, 20, 20" />
<StackLayout Margin="0, 30, 0, 0" Orientation="Horizontal" HorizontalOptions="End">
<Button Text="Reset" BorderRadius="6" />
<Button Text="Submit Time Sheet" BackgroundColor="Blue" TextColor="White" BorderRadius="6" />
</StackLayout>
</StackLayout>
</ScrollView>
page.xaml.cs 代码:
private void AddAnotherButton_Clicked(object sender, EventArgs e)
{
mainTimeLayout.Children.Add(new TimeSheetAccordion() {
HeaderText = "Customer #1",
BackgroundColor = Color.FromHex("#FAFAFA")
});
}
有没有办法可以设置它以便 HeaderText 递增?
解决方案
您可以为您的 StackLayout 添加一个名称,以便在您的代码隐藏中引用。
<ScrollView>
<StackLayout x:Name="mainLayout" Padding="20, 20, 20, 20">
<local:TimeSheetAccordion HeaderText="Customer #1" BackgroundColor="#FAFAFA" Padding="20, 20, 20, 20" />
<local:TimeSheetAccordion HeaderText="Customer #2" BackgroundColor="#FAFAFA" Padding="20, 20, 20, 20" />
<StackLayout Margin="0, 30, 0, 0" Orientation="Horizontal" HorizontalOptions="End">
<Button Text="Reset" BorderRadius="6" />
<Button Text="Submit Time Sheet" BackgroundColor="Blue" TextColor="White" BorderRadius="6" />
</StackLayout>
</StackLayout>
</ScrollView>
在此之后,在您的 Page.xaml.cs
mainLayout.Children.Add(new TimeSheetAccordion());
推荐阅读
- javascript - 试图获取单个产品并将其显示在组件中但它不起作用,我有一个服务组件来显示此数据
- nlp - 词性标注:已知词和未知词有什么区别?
- reactjs - React context API-我如何从 useEffect 钩子中分派一个动作?
- java - Java 线程 CPU 使用率
- javascript - 根据单元格值选择html表格单元格
- angular - Angular 和输入类型 Date 不会显示以 T 格式分配的日期
- mysql - 与多个匹配表和相关表一起使用时,MySQL 全文索引不会显示在查询计划中
- python - 为什么VSCode不能识别中文?
- python - 即使条件满足,while循环也会无限继续
- asp.net-core - 在 DI 的上下文中,如何在 MassTransit 中使用“AddMediator()”扩展方法将“IConsumeMessageObserver”连接到消费者?