WPF DataGridComboBoxColumn - PullRequest
       29

WPF DataGridComboBoxColumn

5 голосов
/ 14 декабря 2009

Здравствуйте! Я использую WPF DataGrid и пытаюсь заставить работать столбец ComboBox.

<tk:DataGridComboBoxColumn Header="GroupLevel"
                           DisplayMemberPath="Type"
                           SelectedItemBinding="{Binding Path=GroupLevel}"
                           >
    <tk:DataGridComboBoxColumn.EditingElementStyle>
        <Style TargetType="ComboBox">
            <Setter Property="ItemsSource" Value="{Binding Path=GroupLevel.Group.GroupLevels}" />
        </Style>
    </tk:DataGridComboBoxColumn.EditingElementStyle>

</tk:DataGridComboBoxColumn>

Когда я смотрю на сетку, столбец пуст, как будто он не использует путь отображаемого элемента. Но как только я щелкну в столбце, появится комбинированный список, который покажет все элементы в моем ItemsSource и выберет подходящий, так что я знаю, что все привязки работают правильно, даже DisplayMemberPath. Просто, когда я не редактирую ячейку, она отображается пустой.

Я где-то пропустил свойство?

Спасибо, Raul

1 Ответ

14 голосов
/ 15 декабря 2009

Я почти уверен, что это потому, что когда вы не находитесь в режиме редактирования, в вашем столбце нет источника элементов, а ComboBox не может иметь выбранный элемент без источника элементов. как только вы перейдете в режим редактирования, ваша колонка получит источник своих элементов, и все будет круто. Вы можете исправить это, указав источник предметов следующим образом: -

<tk:DataGridComboBoxColumn.ElementStyle>
    <Style TargetType="ComboBox">
        <Setter Property="ItemsSource" Value="{Binding Path=GroupLevel.Group.GroupLevels}" />
    </Style>
</tk:DataGridComboBoxColumn.ElementStyle>

тогда и ваш элемент редактирования, и ваш (не редактируемый) элемент имеют один и тот же ItemsSource

...