The last question: How to get another element and assign to label field. When i select the element from
SfComboBox, i can get the value
ClienteID and ClienteNombre but i want also get
ClienteCorreoMain and put it <label x:"nameVariable"> or binding.
Example:
1) View.
<StackLayout Padding="10,2,10,2">
<combobox:SfComboBox
x:Name="PropiedadesCualFue"
DataSource="{Binding Clientes, Mode=TwoWay}"
DisplayMemberPath="ClienteNombre"
SelectedValue="{Binding SelectedValue, Mode=TwoWay}"
SelectedValuePath="ClienteID"/>
</StackLayout>
1) ViewModel.
namespace InvoiceMPG
{
public class ViewModel : INotifyPropertyChanged
{
private ObservableCollection<DataClientes> clientes;
public ViewModel()
{
jsonDataCollection = new List<ModeloDatosClientes>();
GetInformation();
}
private async void GetInformation()
{
var httpClient = new HttpClient();
var response = await httpClient.GetStringAsync("https://www.invoicempg.com/xamarin/json_loadclientes.php");
jsonDataCollection = JsonConvert.DeserializeObject<List<ModeloDatosClientes>>(response);
this.Clientes = new ObservableCollection<DataClientes>();
foreach (var data in jsonDataCollection)
{
Clientes.Add(new DataClientes()
{
ClienteID = data.Cliente_Id,
ClienteNombre = data.Cliente_Nombre,
ClienteCorreoMain = data.Cliente_Correo,
});
SelectedValue = Clientes[0].ClienteID;
SelectedValueEmail = Clientes[0].ClienteCorreoMain;
}
}
private List<ModeloDatosClientes> jsonDataCollection;
public ObservableCollection<DataClientes> Clientes
{
get
{
return this.clientes;
}
set
{
this.clientes = value;
this.RaiseOnPropertyChanged("Clientes");
}
}
private object selectedValue;
public object SelectedValue
{
get
{
return this.selectedValue;
}
set
{
this.selectedValue = value;
this.RaiseOnPropertyChanged("SelectedValue");
}
}
private object selectedValueEmail;
public object SelectedValueEmail
{
get
{
return this.selectedValueEmail;
}
set
{
this.selectedValueEmail = value;
this.RaiseOnPropertyChanged("SelectedValueEmail");
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void RaiseOnPropertyChanged(string propertyName)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
}