Как получить выбранную ComboBox-запись в DataGrid?(PowerShell WPF) - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь сделать ComboBox внутри DataGrid.Я достиг, чтобы заполнить ComboBox с PSCustomObject.Но я не знаю, как получить выбранный элемент из комбинированного списка после выбора строки ... (и сценарий создает новую строку с именем "DropDown", которая мне не нужна)

Iдумаю, что это как-то связано с привязками в XAML, но я не могу этого понять.

Я уже искал в Интернете и не нашел ничего полезного.Например, я нашел эти сообщения от одного и того же парня:

Но он не публикует какой-либо код, поэтому я не могу проверить, как он решил его в своем скрипте.


Скрипт - всего лишь небольшой пример для проверки комбинированного списка.

Вы можете найти скрипт здесь: https://pastebin.com/75nsJFzL


Моя цель - получить значения из всей строки плюс выбранная запись в выпадающем списке.

Спасибо за ваши ответы.

1 Ответ

0 голосов
/ 13 июня 2019

У меня была такая же проблема, и я решил ее следующим образом:

<DataGridTemplateColumn Header="Rezept">
            <DataGridTemplateColumn.CellTemplate>
              <DataTemplate>
                <TextBlock Text="{Binding MyRecipe.Name}"/>
              </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
            <DataGridTemplateColumn.CellEditingTemplate>
              <DataTemplate>
                <ComboBox ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=UserControl}, Path=DataContext.RecipeList}" DisplayMemberPath="Name" SelectedValue="{Binding MyRecipe}"/>
              </DataTemplate>
            </DataGridTemplateColumn.CellEditingTemplate>
          </DataGridTemplateColumn>

MyRecipe находится в DataContext этой DataGrid, но RecipeList находится только в DataContext предка DataGrid. В конце CellEditingTemplate есть термин SelectedValue="{Binding MyRecipe}", который возвращает результат комбинированного списка. В этом случае он сохраняется в MyRecipe. Я надеюсь, что это поможет Вам.

...