Вопрос

Пытаясь привязаться к коллекции в WPF, у меня получилось следующее:

КСАМЛ:

<toolkit:DataGrid Name="dgPeoples"/>

КС:

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;
        }
    }
}

возможно, ненужно, но вот класс Person:

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;
        }
    }
}

Но что мне действительно нужно, так это DataGridComboBoxКолонка х.Вот мои доработки:

КСАМЛ:

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

С#:

Остается прежним.

Проблема теперь я получаю пустые столбцы со списком!Есть идеи, как я могу заставить это работать?

В конечном итоге мне нужна двухсторонняя привязка, когда двойной щелчок по столбцу имени вызывает поле со списком, в котором затем хранятся параметры всех возможных имен в коллекции (т. е.Джордж, Джим и Эми).

Благодарен за любую помощь!

Это было полезно?

Решение

Я просто хотел указать вам на один из лучших справочников по Datagrid WPF Toolkit. от Сэмюэля Моуры Я загрузил 15 образцов и храню их под рукой. Я даю вам ссылку, потому что вы найдете серию сообщений Datagrid более полезной, чем любая ссылка, чем я могу дать вам в качестве быстрого ответа.

Другие советы

DataGrid должен иметь Header и ItemsSource Набор свойств:

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

Похоже, в одной из версий набора инструментов возникла проблема при использовании DataGridComboBoxColumn.ItemsSource: DataGridComboBoxColumn.ItemsSource не работает.

Однако был создан обходной путь для Использование полей со списком с WPF DataGrid.Наконец, вы можете взглянуть на статью Больше удовольствия с DataGrid также Маргарет Парсонс.

Редактировать
Теперь я не уверен, что приведенный выше код работает.Я сделал это по памяти и сослался на другие ссылки как на ресурсы.

Взгляните на этот пост SO, который, по-видимому, решает эту проблему: Проблема с привязкой DataGridComboBoxColumn.ItemsSource

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top