Я новичок в формах xamarin и всех этих новых штуках, таких как модель mvvm, asyn c задача, веб-API и т. Д. c. И также извините за мой плохой английский sh, я говорящий по-португальски из Африки.
Итак, это мой модельный класс «Usuario»
Этот класс имеет внешний ключ IdTipoUsuario ", который был объявлен в моей базе данных из SQL Server Management Studio. Я поместил его сюда со свойством «IList»:
namespace APPiGarbage.Models
{
public class Usuario
{
public int IdUsuario { get; set; }
public string Nome { get; set; }
public string Foto { get; set; }
public string Descricao { get; set; }
public string Email { get; set; }
public string Senha { get; set; }
public IList<TipoUsuario> TiposUsuarios { get; set; }
}
}
У меня есть другой класс TipoUsuario. Этот класс имеет свойство «Nome», которое должно быть привязкой в сборщике.
namespace APPiGarbage.Models
{
public class TipoUsuario
{
public int IdTipoUsuario { get; set; }
public string Nome { get; set; }
}
}
Для моей модели MVVM я перепробовал коды целых партий, и теперь я даже не знаю, что в них вставить. Если честно.
namespace APPiGarbage.ViewModel
{
public class UsuarioViewModel
{
public List<TipoUsuario> tipos { get; set; }
public List<Usuario> GetTipos()
{
var tipos = new List<Usuario>()
{
};
return tipos;
}
}
Для моего класса ApiService у меня есть этот код:
namespace APPiGarbage.API
{
public class ApiService
{
public const string Url = "http://10.0.2.2:44342/";
public static async Task<List<TipoUsuario>> ObterTipoUsuarios()
{
try
{
HttpClient client = new HttpClient();
string url = Url + "/api/TipoUsuario";
string response = await client.GetStringAsync(url);
List<TipoUsuario> tipos = JsonConvert.DeserializeObject<List<TipoUsuario>>(response);
return tipos;
}
catch (Exception)
{
throw;
}
}
}
}
Это сборщик в моем UsuarioPage.xaml:
<Picker Title="Selecione o Tipo de Usuario"
ItemsSource="{Binding TipoUsuario}"
ItemDisplayBinding="{Binding Nome}"/>
И, наконец, это UsuarioPage.xaml.cs:
namespace APPiGarbage.Pages.UsuarioPage
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class UsuarioPage : ContentPage
{
public UsuarioPage()
{
InitializeComponent();
BindingContext = new UsuarioViewModel();
}
}
}
спасибо, что нашли время, чтобы помочь мне.