Olá pessoal!
Estou com um problema ao utilizar uma coluna do tipo DataGridComboBoxColumn em um DataGrid.
Eu estou fazendo um projeto no .Net 3.5 e adicionei o componente WpfToolKit do CodePlex para utilizar o DataGrid.
Eu tenho uma coluna que o usuário tem que selecionar o dia da semana desejado. Para popular a combo eu criei uma classe da seguinte maneira.
public class clsDiaSemana : ObservableCollection<clsTipoPesquisa>
{
public clsDiaSemana()
{
this.Add(new clsTipoPesquisa(1, "Domingo"));
this.Add(new clsTipoPesquisa(2, "Segunda-Feira"));
this.Add(new clsTipoPesquisa(3, "Terça-Feira"));
this.Add(new clsTipoPesquisa(4, "Quarta-Feira"));
this.Add(new clsTipoPesquisa(5, "Quinta-Feira"));
this.Add(new clsTipoPesquisa(6, "Sexta-Feira"));
this.Add(new clsTipoPesquisa(7, "Sábado"));
}
}
Sendo que esta classe clsTipoPesquisa tem somente duas propriedades Codigo e Descricao
e no XAML eu linquei da seguinte maneira.
<Window.Resources>
<ObjectDataProvider x:Key="TipoPesquisa" ObjectType="{x:Type classes:clsDiaSemana}"/>
</Window.Resources>
E na combo
<Custom:DataGridComboBoxColumn SelectedValueBinding="{Binding DIASEMANA, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
SelectedValuePath="Codigo"
DisplayMemberPath="Descricao"
Header="Dia da Semana"
Width="200"
ItemsSource="{Binding Mode=OneWay, Source={StaticResource TipoPesquisa}}"
>
<Custom:DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="ComboBox">
<Setter Property="IsEditable" Value="True"/>
</Style>
</Custom:DataGridComboBoxColumn.EditingElementStyle>
</Custom:DataGridComboBoxColumn>
Sendo que a coluna DIASEMANA setada no SelectedValueBinding vem de uma consulta do banco que indica o indice relacionado ao dia, da mesma maneira que na classe clsDiaSemana.
Bem vamos ao problema....
Ao preencher o DataGrid as colunas são setadas corretamente de acordo com o indice DIASEMANA. Mas ao tentar trocar um dia ou adicionar algum outro a combo não atualiza o valor ja preenchido.
Por exemplo:
Se quiser trocar uma configuração de Segunda para Quinta eu consigo selecionar o dia na combo, mas ao dar o enter na célula o valor volta para a Segunda-Feira.
Eu já pesquisei para tentar encontrar o erro mas não consegui.
Alguém pode me ajudar?