none
DataGridComboBoxColumn Binding TwoWay no SelectedValue RRS feed

  • Pergunta

  • 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?




    sexta-feira, 14 de junho de 2013 13:12