【发布时间】:2020-11-26 18:36:26
【问题描述】:
所以,这是我的模型类“Usuario”
此类具有在我的数据库中从 SQL Server Management Studio 声明的外键“IdTipoUsuario”。所以我用“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:
<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();
}
}
}
感谢您抽出宝贵时间帮助我。
【问题讨论】:
-
欢迎来到 stackoverflow.com。对于您遇到的任何具体问题,请提供stackoverflow.com/help/minimal-reproducible-example。另请阅读stackoverflow.com/help/how-to-ask 和stackoverflow.com/help/dont-ask。确保您的问题具体且不过分宽泛,另请参阅stackoverflow.com/help/on-topic。另外,请务必参加 stackoverflow.com/tour(您会获得徽章!)
-
第一个问题 - 您的 Picker 的 ItemsSource 绑定到 TipoUsuario,但 TipoUsuario 不是您的 VM 的属性。大概您的 ItemsSource 应该绑定到
tipos属性。 -
一个小建议,即使您的母语不是英语,我建议您在编码时停止使用葡萄牙语。这将帮助您学习更好的英语,并帮助您获得帮助。
标签: c# xamarin mvvm xamarin.forms xamarin.android