Используя ES2017, вы должны иметь это как объявление функции
async function foo() {
var response = await $.ajax({url: '...'})
return response;
}
и выполнить его следующим образом.
(async function() {
try {
var result = await foo()
console.log(result)
} catch (e) {}
})()
Или синтаксис Promise
foo().then(response => {
console.log(response)
}).catch(error => {
console.log(error)
})
Вы можете использовать свойство Source
, чтобы указать источник привязки, который будет использоваться вместо текущего BindingContext
. Затем текст может исходить из контекста привязки страницы и команды из другого места.
Command="{Binding CategorySelectedCommand, Source={x:Static me:SomeStaticClass.YourUserControl}}"
или
Command="{Binding CategorySelectedCommand, Source={DynamicResource yourUserControlKey}}"
или
Command="{Binding CategorySelectedCommand, Source={x:Reference myUserControl}}"
полный пример. Общей проблемой является не реализовать INotifyPropertyChanged
и установить свойство после вызова InitializeComponent()
.
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" x:Class="test.MyPage" x:Name="ThePage">
<Label Text="{Binding TextProp, Source={x:Reference ThePage}" HorizontalOptions="Center" VerticalOptions="CenterAndExpand" />
</ContentPage>
Код за
public partial class MyPage : ContentPage
{
public MyPage ()
{
this.TextProp = "Some Text";
InitializeComponent ();
}
public string TextProp
{
get;
set;
}
}