Ligação a DataGridComboBoxColumn da coleção
-
19-09-2019 - |
Pergunta
Tentando se ligam a uma coleção em WPF, eu tenho o seguinte para o trabalho:
XAML:
<toolkit:DataGrid Name="dgPeoples"/>
CS:
namespace DataGrid
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1
{
private readonly ObservableCollection<Person> personList = new ObservableCollection<Person>();
public Window1()
{
InitializeComponent();
personList.Add(new Person("George", "Jung"));
personList.Add(new Person("Jim", "Jefferson"));
personList.Add(new Person("Amy", "Smith"));
dgPeoples.ItemsSource = personList;
}
}
}
unnessecary provavelmente, mas aqui é classe Pessoa:
namespace DataGrid
{
public class Person
{
public string fName { get; set; }
public string lName { get; set; }
public Person(string firstName, string lastName)
{
fName = firstName;
lName = lastName;
}
}
}
Mas o que eu realmente preciso é isso em DataGridComboBoxColumn 's. Aqui estão as minhas revisões:
XAML:
<toolkit:DataGrid Name="dgPeoples" Grid.Row="0" AutoGenerateColumns="False">
<toolkit:DataGrid.Columns>
<toolkit:DataGridComboBoxColumn Width="5*"/>
<toolkit:DataGridComboBoxColumn Width="5*"/>
</toolkit:DataGrid.Columns>
</toolkit:DataGrid>
C #:
Stays mesmo.
Problema agora é que eu tenho colunas combobox vazias! Alguma idéia de como eu posso chegar a este trabalho?
No longo prazo, eu preciso de 2 vias de ligação, onde um duplo clique na coluna firstname abre a caixa de comobo que então mantém as opções de todos os nomes possíveis na coleção (ou seja, George, Jim e Amy).
Grateful todo o auxílio!
Solução
Eu só queria que você aponte para um dos melhores de referência quando se trata do WPF Toolkit DataGrid, vem de de Samuel Moura Eu baixei as 15 amostras e mantê-los à mão, eu vou te dar o link, porque você vai encontrar as séries pós Datagrid mais útil do que qualquer referência do que eu pode dar-lhe como resposta rápida
Outras dicas
O DataGrid precisa ter as propriedades Header
e ItemsSource
definido:
<toolkit:DataGrid Name="dgPeoples" Grid.Row="0" AutoGenerateColumns="False">
<toolkit:DataGrid.Columns>
<toolkit:DataGridComboBoxColumn Width="5*"
Header="First Name"
ItemsSource="{Binding Path=fName}"/>
<toolkit:DataGridComboBoxColumn Width="5*"
Header="First Name"
ItemsSource="{Binding Path=lName}"/>
</toolkit:DataGrid.Columns>
</toolkit:DataGrid>
Parece não estava em questão em uma das versões do kit de ferramentas ao usar o DataGridComboBoxColumn.ItemsSource
: DataGridComboBoxColumn.ItemsSource não funciona .
No entanto, não foi um trabalho em torno criado para Usando caixas de combinação com o WPF DataGrid . Finalmente, você pode querer dar uma olhada no artigo Mais diversão com DataGrid por Margaret Parsons também.
Editar
Agora eu não estou tão certo o código acima funciona. Eu fiz isso a partir da memória e referenciados os outros links como recursos.
Dê uma olhada neste post SO que aparece para resolver este problema: Problema de ligação DataGridComboBoxColumn.ItemsSource