WPF каскадные комбинированные списки - PullRequest
2 голосов
/ 21 мая 2009

Я успешно связываю данные и использую комбинированные списки WPF и добился определенного успеха с каскадированием некоторых комбинированных списков путем запуска обновления дочерней комбинации, когда инициируется родительское событие SelectionChanged. Мои комбо - cboCountry, cboCity и cboTown.

Однако это ненадежно, так как кажется, что пустое значение выбрано в дочернем комбо, когда родитель запускает обновление в выпадающем содержимом дочерних комбо.

Кто-нибудь испытывал такое поведение (и разрешил его), или у кого-нибудь есть код, который успешно работает без этой проблемы?

Private Sub cboArea_SelectionChanged(ByVal sender As Object, ByVal e As System.Windows.Controls.SelectionChangedEventArgs) Handles cboArea.SelectionChanged
    Dim drv As DataRowView = CType(CType(e.Source, ComboBox).SelectedItem, DataRowView)
    If Not IsNothing(drv) Then
        Dim Area As String = drv(0).ToString
        Dim dv As New DataView(gLookupTown, "ItemGrouping = '" & Area & "'", "ItemValue", DataViewRowState.CurrentRows)
        cboTown.ItemsSource = dv
    End If
End Sub

1 Ответ

1 голос
/ 21 мая 2009

Это потому, что вы изменяете ItemsSource ComboBox. Без примера кода я не могу сказать вам, как это исправить. Наилучшим вариантом является фильтрация ObservableCollection на основе значения родительского ComboBox, чтобы вам не нужно было изменять дочерний ItemsSource. Вы также можете попробовать сбросить SelectedValue при изменении ItemsSource.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...