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?