DataGridComboBoxColumn устанавливает ItemSource на основе выбранного элемента другого DataGridComboBoxColumn - PullRequest
0 голосов
/ 19 января 2020

У меня есть 2 DataGridComboBoxColumn в моей таблице классификации ClassComboBox и DisclosureNoteComboBox. Первый работает нормально, я вижу, что он заполнен данными. Я хочу, чтобы, когда элемент выбран в первом, то есть ClassificationComboBox, я хотел, чтобы второй отображал список данных из выбранного элемента в первом. Выбранный элемент в ClassificationComboBox имеет тип Classification, и в нем есть список ClassificationRecords, который я хочу заполнить в DisclosureNoteComboBox.

Это фрагмент моего XML.

              <materialDesign:DataGridComboBoxColumn Header="Classification" IsEditable="False" x:Name="ClassificationComboBox"
                                                       ItemsSourceBinding="{Binding ElementName=TrialBalanceViewName, Path=Report.Classifications}"
                                                       DisplayMemberPath="Name"
                                                       SelectedValuePath="Id" 
                                                       SelectedValueBinding="{Binding ClassificationRecord.ClassificationId}"
                                                       />
                <materialDesign:DataGridComboBoxColumn Header="Disclosure Note" IsEditable="False" x:Name="DisclosureNoteComboBox"
                                                       ItemsSourceBinding="{Binding ElementName=ClassificationComboBox, Path=SelectedValueBinding.ClassificationRecords}"
                                                       SelectedValuePath="DisclosureNote"
                                                       SelectedValueBinding="{Binding ClassificationRecord.DisclosureNote}"
                                                       />

I Подозреваю, что моя проблема заключается в том, как создать ItemsSourceBinding для второго (особенно пути). Я думаю, что это неправильно, но я не уверен, как вызвать выбранный Item первого и вызвать ClassificationRecords на нем, чтобы ItemSource второго

ItemsSourceBinding="{Binding ElementName=ClassificationComboBox, Path=SelectedValueBinding.ClassificationRecords}"

1 Ответ

1 голос
/ 20 января 2020

Вы не можете подойти к этой проблеме, потому что определения столбцов сетки данных не содержат данных, которые вы хотите. Это инструкции для DataGrid по отображению его элементов, а не контейнеров самих элементов.

Для решения этой проблемы вам необходимо привязать к модели данных, а не к определениям столбцов.

  • Столбец A: привязка к свойству foo.
  • Столбец B: привязка к свойству bar с ItemSource, заполненным свойством foo.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...