1

我有一个ListView包含对象的集合 asitemssource和选定的对象 as SelectedItem

<ListView Margin="5 0 5 0" ItemsSource="{Binding ObjectCollection}" SelectedItem="{
Binding SelectedObject}" Grid.Row="1">

在里面ListView.View我有几个GridViewColumns 每个都有一个CellTemplate

<GridViewColumn CellTemplate="{StaticResource ReferenceToCellTemplate}" Header="{
Binding ColumnName, Converter={StaticResource upperConverter}}" Width="90" 
HeaderContainerStyle="{StaticResource StaticGridViewColumnHeaderStyleWhite}"/>

这种模板的一个例子:

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

现在解决这个问题:

假设我在这个列表视图中有 2 个组合框。例如,一个带有不同软件的组合框和另一个带有该软件不同版本的组合框。

每当软件在某一行发生变化时,都应该更新可能的版本。

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

当您更改组合框中的值时,这并不意味着该行被选中。因此,当我尝试调整所选行的版本时,我还不如调整错误的行。

所以在我看来,有两种可能性:

  • 每当调整/选择该行内的某些内容时选择给定行
  • 无需选择即可了解更改/选定控件位于哪一行

任何帮助将非常感激。

4

1 回答 1

0

解决方案是在属性更改时不使用事件处理程序,而只是处理行对象的属性更改。因此,当“软件”的属性发生变化时,调用一个方法来调整该软件的“PossibleVersions”属性。所有这些都在 VM 中用于行对象。

我猜是基本的初学者 MVVM 错误

于 2013-08-21T11:37:04.963 回答