Buenos días desde España !!!
Tengo un DataGrid enlazado. Cada Fila del DataGrid, tiene un combo, el cual le he cargado unos valores.
Tengo un LIST de la siguiente clase, enlazado al DataGrid:
Código:
[DataContract()]
public class Cliente : INotifyPropertyChanged
{
#region FIELDS
private int _codigoCliente = -1;
private string _nombreCliente;
private Provincia _provinciaOrigen;
#endregion
#region PROPERTIES
/// <summary>
/// Devuelve/Establece el Codigo del cliente.
/// </summary>
[DataMember()]
public int CodigoCliente
{
get { return this._codigoCliente; }
set
{
this._codigoCliente = value;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("CodigoCliente"));
}
}
/// <summary>
/// Devuelve/Establece el nombre del cliente.
/// </summary>
[DataMember()]
public string NombreCliente
{
get { return this._nombreCliente; }
set
{
this._nombreCliente = value;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("NombreCliente"));
}
}
/// <summary>
/// Devuelve/Establece la provincia del cliente.
/// </summary>
[DataMember()]
public Provincia ProvinciaOrigen
{
get { return this._provinciaOrigen; }
set
{
this._provinciaOrigen = value;
if(PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("ProvinciaOrigen"));
}
}
#endregion
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
#endregion
}
Al enlazar el DataGrid, voy cargando los valores de un combo por cada fila...
Código:
private void ctrlGridClientes_LoadingRow(object sender, DataGridRowEventArgs e)
{
ComboBox cmbProvincias = (ComboBox)ctrlGridClientes.Columns[2].GetCellContent(e.Row).FindName("cmbProvincias");
cmbProvincias.ItemsSource = this.ListaProvincias;
}
Este es el XAML que tengo:
Código:
<data:DataGrid x:Name="ctrlGridClientes" Margin="27,67,23,55" AutoGenerateColumns="False" LoadingRow="ctrlGridClientes_LoadingRow">
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="Codigo Cliente" Binding="{Binding CodigoCliente}"/>
<data:DataGridTextColumn Header="Nombre Cliente" Binding="{Binding NombreCliente}"/>
<data:DataGridTemplateColumn Header="Provincia">
<data:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<ComboBox Name="cmbProvincias">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock x:Name="txtProvincia" Text="{Binding NombreProvincia}" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</StackPanel>
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
</data:DataGrid.Columns>
</data:DataGrid>
¿Habría alguna forma de decir en el ComboBox, que según la propiedad Provincia de la clase Cliente enlazada en el DATAGRID, seleccione el ComboBoxItem correspondiente?