我正在开发一个项目,我需要在ListView中显示一个ComboBox,ComboBox是使用TwoWay模式绑定的。我需要在Combobox选择发生变化时触发一个事件,并从列表视图中获取所选ComboBox的选定项目。
每当触发组合框选择更改事件时,我都需要选择此项目,这样我就可以获得所选项目。
编辑:这是事件代码。
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;
}
}
答案 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;
}`