WPF级联组合框

时间:2009-05-20 21:26:37

标签: wpf combobox

我成功地数据绑定和使用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 个答案:

答案 0 :(得分:1)

这是因为您正在更改ComboBox的ItemsSource。没有代码示例,我无法告诉您如何解决它。最好的选择是根据父ComboBox的值过滤ObservableCollection,这样就不需要更改子ItemsSource了。您还可以在ItemsSource更改时尝试重置SelectedValue。