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?


