Я занимаюсь разработкой гибридного приложения xamarin. У меня есть страница содержимого с кнопкой, и я хочу загрузить представление списка внутри страницы содержимого при событии нажатия кнопки. Функция для получения данных из API
public static async Task<List<TranslationWords>> GetTranslation()
{
string url = "";//api url here
dynamic results = await DataService.GetDataFromService(url).ConfigureAwait(false);
if (results != null)
{
var wordsList = JsonConvert.DeserializeObject<List<TranslationWords>>(results);
Console.WriteLine(wordsList);
return wordsList;
}
else
{
return null;
}
public static async Task<List<dynamic>> GetDataFromService(string url)
{
HttpClient client = new HttpClient();
var json = "{'word':'wide','type':'eng_to_tam'}";
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
dynamic data = null;
if (response != null)
{
string res = response.Content.ReadAsStringAsync().Result;
data = JsonConvert.DeserializeObject(res);
return data;
} else {
//code to handle null response
}
}
код для детализации главной страницы xaml
<ContentPage.Content>
<StackLayout Padding="10">
<Switch HorizontalOptions="Start" VerticalOptions="Start" Toggled="Switcher_Toggled"></Switch>
<Label Text="Enter a Word:" />
<Entry x:Name="wordToFind" Text="" />
<Button x:Name="searchButton" Text="Search" Clicked="Load_List"/>
<ContentView x:Name="MainPageContainer"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
/>
</StackLayout>
</ContentPage.Content>
просмотр списка xaml
Представление списка размещается внутри представления содержимого (MainPageContainer) на главной странице. Представление содержимого будет загружено данными при нажатии кнопки на главной странице сведений
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout
Padding="10">
<Label
Text="{Binding TamilWord}"
LineBreakMode="NoWrap"
Style="{DynamicResource ListItemTextStyle}"
FontSize="16" />
<Label
Text="{Binding TamilMeaning}"
LineBreakMode="NoWrap"
Style="{DynamicResource ListItemDetailTextStyle}"
FontSize="13" />
<Label
Text="{Binding EnglishTranslation}"
LineBreakMode="NoWrap"
Style="{DynamicResource ListItemDetailTextStyle}"
FontSize="13" />
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
привязка данных в файле .cs
public List<TranslationWords> Words;
public TransList ()
{
InitializeComponent ();
Words = Core.GetTranslation().Result; //method to get data from api
transListView.ItemsSource = Words;
}