[英]Xamarin Forms - how to create a display alert where you can input a quantity?
我的应用程序是在线预订,您可以在线预订,并在指定时间内为您提供服务。
如何使这种显示警报? 链接: https : //i.stack.imgur.com/ycSMP.jpg
而不是“添加”我也想要“取消”按钮,你输入的数量也将转移到本地变量
这是我的代码
OrdernowMenu.xaml
<ListView x:Name="MyOrder" ItemSelected="MyOrder_ItemSelected" RowHeight="100">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid ColumnSpacing="0" RowSpacing="0">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<StackLayout Grid.Row="0" Grid.Column="0" >
<Image Source="{Binding menu_image ,StringFormat='https://i.imgur.com/{0:F0}.png'}" Aspect="AspectFill"/>
</StackLayout>
<StackLayout Grid.Row="0" Grid.Column="1" VerticalOptions="Center">
<Label Text="{Binding menu_name}" Font="30"/>
<Label Text="{Binding menu_price,StringFormat='₱ {0:F0}'}" Font="20"/>
<Label Text="{Binding menu_availability} " Font="10" />
</StackLayout>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
OrdernowMenu.xaml.cs
public string json_response { get; set; }
public string tester { get; set; }
public string seletedMenu;
public string menuPrice;
public string quantity;
public OrdernowMenu(Data.PostSender posts1)
{
InitializeComponent();
json_response = posts1.response;
tester = posts1.teststring;
GetUserAsync();
}
private async Task GetUserAsync()
{
var user = JsonConvert.DeserializeObject<List<Menus>>(json_response);
MyOrder.ItemsSource = user;
}
private void MyOrder_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
var selectedOrder = e.SelectedItem as Menus;
if (selectedOrder != null)
seletedMenu = selectedOrder.menu_name;
menuPrice = selectedOrder.menu_price;
//How can i make it just like in the image? and store the value to quantity string
//DisplayAlert(????);
//quantity = ????
}
我试图研究它,我找不到它
我的参考: https : //docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/navigation/pop-ups
您可以创建自己的输入框对话框方法,而不是使用DisplayAlert或任何插件。 在Xamarin.Form官方论坛上有一个关于这个主题的好主题。
这个帖子的链接由Thomas Flemming回答https://forums.xamarin.com/discussion/comment/110002/#Comment_110002
我建议你使用这个漂亮的插件:
https://github.com/rotorgames/Rg.Plugins.Popup
它让你创建一个完全自定义的弹出窗口(它来自某个地方,来自Xamarin.Forms.ContentPage),使用XAML或C#你可以按照你为任何其他页面的方式创建布局。
然后单击“添加”按钮,我会向弹出窗口的调用者返回一些内容。 我有一个基本的弹出窗口实现,你可以指定一个返回值。 如果您需要该代码,我可以在这里分享(或者在这里查看我的旧答案: 获取弹出页面的公共变量 )
基本实施:
//Create a base callback-popup. Let any popup that should return something on a button click inherit from this
public class CallbackPopup<T> : PopupPage
{
public Task<T> PagePoppedTask { get { return tcs.Task; } }
private TaskCompletionSource<T> tcs;
public CallbackPopup()
{
tcs = new TaskCompletionSource<T>();
}
//Deriving classes have to call this method in the "OnDisappearing" or when a specific button was clicked
public void SetPopupResult(T result)
{
if (PagePoppedTask.IsCompleted == false)
tcs.SetResult(result);
}
}
//Asyncly call this popup
public async void OpenPopup(){
var popup = new YourPopup<bool>();
await Rg.Plugins.Popup.Services.PopupNavigation.Instance.PushAsync(popup);
bool result = await popup.PagePoppedTask;
}
最简单的方法是使用NuGet的Acr.UserDialogs包: https ://www.nuget.org/packages/Acr.UserDialogs/
将软件包包含在共享代码库和本机实现中,您可以通过简单的调用启动对话框。
此外,我还描述了一种在不使用外部插件的情况下创建自定义对话框的方法: 显示带有xamarin表单的弹出窗口
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.