如何从ComboBox事件中获取所选的列表视图项

时间:2014-08-13 14:25:24

标签: c# wpf combobox

我正在开发一个项目,我需要在ListView中显示一个ComboBox,ComboBox是使用TwoWay模式绑定的。我需要在Combobox选择发生变化时触发一个事件,并从列表视图中获取所选ComboBox的选定项目。

enter image description here

每当触发组合框选择更改事件时,我都需要选择此项目,这样我就可以获得所选项目。

编辑:这是事件代码。

private void ProductTypeComboBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        ComboBox combo = e.OriginalSource as ComboBox;
        ComboBoxItem cbItem = (ComboBoxItem) combo.SelectedItem;
        string selected = cbItem.Content.ToString();


        switch (selected)
        {
            case "Vente" :
                var pro = this.ProductsToAddListView.SelectedItem;

                break;

            default:

                MessageBox.Show("Error", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                break;     
        }
    }

1 个答案:

答案 0 :(得分:1)

你想要做的就是通过组合框的祖先,直到你找到你想要的那个。以下函数是一个通用版本,您要做的是使用ListViewItem作为类型T,并使用组合框作为参数。

private static T FindUIElementParent<T>(UIElement element) where T : UIElement
{
    UIElement parent = element;
    while (parent != null)
    {
        T correctlyTyped = parent as T;
        if (correctlyTyped != null)
        {
            return correctlyTyped;
        }

        parent = VisualTreeHelper.GetParent(parent) as UIElement;
    }
    return null;
}`