因此,我有一个组合框,我想对多组数据重复使用,而不要使用3个单独的组合框。也许这很糟糕,有人可以告诉我。我愿意接受所有想法和建议。我只是想清理一些代码,并认为一个组合框而不是3个组合框更干净。无论如何,当另一个值更改时ItemsSource,SelectedItem所有更改都应该更改,ComboBox's这会提高无法使用的ComboBox的“属性更改”值。最糟糕的部分是,当CurSetpoint.ActLowerModeIsTimerConditiontrue为true时,它总是SelectedItem正确加载,但是从CurSetpoint.ActLowerGseModetrue 变为true时,组合框没有SelectedItem加载。
这是带有问题的ComboBox的XAML。
<ComboBox Grid.Row="1" Grid.Column="1" Margin="5,2" VerticalAlignment="Center" Name="cmbActTimersSetpointsGseVars">
<ComboBox.Style>
<Style BasedOn="{StaticResource {x:Type ComboBox}}" TargetType="{x:Type ComboBox}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=CurSetpoint.ActLowerModeIsTimerCondition}" Value="True">
<Setter Property="ItemsSource" Value="{Binding TimerInstances}" />
<Setter Property="SelectedItem" Value="{Binding CurSetpoint.ActLowerTimerInstance, Mode=TwoWay}" />
<Setter Property="DisplayMemberPath" Value="DisplayName"></Setter>
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=CurSetpoint.ActLowerGseMode}" Value="True">
<Setter Property="ItemsSource" Value="{Binding EnabledGseVars}" />
<Setter Property="SelectedItem" Value="{Binding CurSetpoint.ActLowerGseVar, Mode=TwoWay}" />
<Setter Property="DisplayMemberPath" Value="DisplayName"></Setter>
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=CurSetpoint.ActModeIsLogicCondition}" …Run Code Online (Sandbox Code Playgroud)