Звучит так, как будто вы хотите, чтобы ваш ComboBox
содержал элементы из clnObjects
, но для отображения DropDown используйте DataGrid
, а не значение по умолчанию StackPanel
.
.полон DataGrid
элементов управления, а не какой-либо объект в clnObjects
.Это означает, что когда вы выбираете элемент, вы выбираете DataGrid
, а не DataGrid.SelectedItem
. Вы можете попробовать изменить его, чтобы отображаемый текст ComboBox содержал ComboBox.SelectedItem.SelectedItem
, где первый SelectedItem
- этоDataGrid, однако я все еще чувствую, что это плохой дизайн, поскольку вам нужно создать новый DataGrid
объект для ComboBoxItem
Вместо этого я бы рекомендовал перезаписать значение по умолчанию ComboBox.Template
для отображения элементов ComboBox в DataGrid
вместо стандартной панели StackPanel.Шаблон ComboBox по умолчанию можно найти здесь .Просто скопируйте его и замените StackPanel с IsItemsHost="True"
на DataGrid
<Popup x:Name="Popup" ...>
<Grid x:Name="DropDown" ...>
<Border x:Name="DropDownBorder" ... />
<ScrollViewer ...>
<!-- Replace this with a DataGrid -->
<StackPanel IsItemsHost="True"
KeyboardNavigation.DirectionalNavigation="Contained" />
</ScrollViewer>
</Grid>
</Popup>