public async void ShowInputDialog(InputDialogMessage message)
		{
			using(var loc = await MDialog.ALocker.LockAsync())
			{
				InputBox.Text = String.Empty;
				if (!String.IsNullOrWhiteSpace(message.Title))
				{
					Title = message.Title;
				}
				else
				{
					Title = "";
				}

				if (!String.IsNullOrWhiteSpace(message.Description))
				{
					Description.Text = message.Description;
				}
				else
				{
					Description.Text = "";
				}

				if (message.Buttons?.Length == 1)
				{
					IsSecondaryButtonEnabled = false;
					PrimaryButtonText = message.Buttons[0];
				}
				else if(message.Buttons?.Length > 1)
				{
					IsSecondaryButtonEnabled = true;
					PrimaryButtonText = message.Buttons[0];
					SecondaryButtonText = message.Buttons[1];
				}

				var result = await ShowAsync();
				if(message.CallBack != null)
				{
					if(result == ContentDialogResult.Primary)
					{
						message.CallBack(PrimaryButtonText, InputBox.Text);
					}
					else if(result == ContentDialogResult.Secondary)
					{
						message.CallBack(SecondaryButtonText, InputBox.Text);
					}
					else
					{
						message.CallBack(null, InputBox.Text);
					}
				}
			}
		}
		private async void inputDialogMessageReceiver(InputDialogMessage dm)
		{
			InputDialog.InputText = "";
			String result = "";
			using (await alock.LockAsync())
			{
				if (dm.Buttons != null)
				{
					result = await InputDialog.ShowAsync(dm.Title ?? "", dm.Description ?? "", dm.Buttons);
				}
				else
				{
					result = await InputDialog.ShowAsync(dm.Title ?? "", dm.Description ?? "");
				}
			}
			if (dm.CallBack != null)
			{
				dm.CallBack(result, InputDialog.InputText);
			}
		}