Pergunta

Às vezes, os exemplos mais fáceis são as mais difíceis de encontrar. . .

Eu tenho um datagrid com 2 colunas. Uma coluna contém informações de função, a outra coluna deve ter uma caixa de combinação com uma lista de usuários disponíveis. Os dados na caixa de combinação não está relacionado com os dados na primeira coluna. Eu estou jogado fora pelo fato de que a caixa de combinação não tem um datacontext, apenas o ItemSource e eu não consigo usar ligação também.

Pode alguém por favor me aponte para um exemplo simples que usa dois conjuntos de dados diferentes para os dados em uma tabela e caixa de combinação?

Foi útil?

Solução

as colunas na Dont datagrid ter um datacontext, como eles nunca são adicionados à árvore visual. soar um pouco wierd, mas ter um olhar para vinces blogue , o seu tem um bom exemplo do layout visual. uma vez que a grade é desenhada as células têm um contexto de dados e você pode definir a fonte de caixas de combinação itens neles usando ligações normais (recursos não estáticos ..)

Você pode acessar a fonte de itens de caixa de combinação como tal

   <dg:DataGridComboBoxColumn>
      <dg:DataGridComboBoxColumn.EditingElementStyle>
        <Style TargetType="ComboBox">
            <Setter Property="ItemsSource" Value="{Binding Path=MyBindingPath}" />
        </Style>
      </dg:DataGridComboBoxColumn.EditingElementStyle>
   </dg:DataGridComboBoxColumn>

aqui também aqui para algum código

Outras dicas

Em vez de usar DataGridTextColumns um usa um DataGridComboBoxColumn vez. Então, um preenche os dados usando o ItemsSource, que nos abaixo exemplo aponta para um enum externa no recurso estático e, finalmente, uma liga o resultado para o objeto de destino que irá realizar a seleção do usuário na SelectedItemBinding.

<DataGrid.Columns>

<DataGridComboBoxColumn Header="MySelections"  
                        SelectedItemBinding="{Binding MySelectionsProperty}" 
                        ItemsSource="{Binding Source={StaticResource mySelectionsEnum}}" />
</DataGrid.Columns>

Veja um exemplo completo em MSDN em DataGridComboBoxColumn Class

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top