C# 选择combobox/textbox时选择ListView项WPF MVVM

C# 选择combobox/textbox时选择ListView项WPF MVVM,c#,wpf,mvvm,C#,Wpf,Mvvm,我有一个列表视图,其中包含一组对象,如itemsource,所选对象为SelectedItem <ListView Margin="5 0 5 0" ItemsSource="{Binding ObjectCollection}" SelectedItem="{ Binding SelectedObject}" Grid.Row="1"> 此类模板的一个示例: <DataTemplate x:Key="ReferenceToCellTemplate"> <

我有一个
列表视图
,其中包含一组对象,如
itemsource
,所选对象为
SelectedItem

<ListView Margin="5 0 5 0" ItemsSource="{Binding ObjectCollection}" SelectedItem="{
Binding SelectedObject}" Grid.Row="1">
此类模板的一个示例:

<DataTemplate x:Key="ReferenceToCellTemplate">
    <ComboBox ItemsSource="{Binding PossibleValuesForProperty, UpdateSourceTrigger=
PropertyChanged}" SelectedItem="{Binding SelectedProperty, UpdateSourceTrigger=
PropertyChanged}" SelectionChanged="Protocol_ComboBox_SelectionChanged"/>
</DataTemplate>

现在来讨论这个问题:

假设此列表视图中有2个组合框。例如,一个包含不同软件的组合框和另一个包含此软件不同版本的组合框。

当软件在某一行中发生更改时,应更新可能的版本。

问题是: 如何知道软件组合框也属于哪个对象,以便调整此对象的可能版本

当您更改组合框内的值时,这并不意味着该行已被选中。因此,当我试图调整版本以及所选行时,我可能会调整错误的行

因此,我认为有两种可能性:

  • 每当调整/选择行内的内容时,选择给定行
  • 无需选择更改/选择的控件即可了解其所在的行

任何帮助都将不胜感激。

解决方案是在属性更改时不使用事件处理程序,而只是处理行对象属性的更改。因此,当“软件”的属性更改时,调用一个方法来调整此软件的“可能的变化”属性。所有这些都在虚拟机内部用于行对象


基本初学者MVVM错误我猜你知道ObjectCollection的顺序吗?在这种情况下,我可能会使用ListView.SelectedIndex作为最后的求助工具。您是否在代码隐藏中定义了ComboBox.SelectionChanged处理程序?是的,我已经定义了处理程序。问题是所选索引仍然可以是3,例如,当第5行的组合框发生更改时。。。
<DataTemplate x:Key="ReferenceToCellTemplate">
    <ComboBox ItemsSource="{Binding PossibleValuesForProperty, UpdateSourceTrigger=
PropertyChanged}" SelectedItem="{Binding SelectedProperty, UpdateSourceTrigger=
PropertyChanged}" SelectionChanged="Protocol_ComboBox_SelectionChanged"/>
</DataTemplate>