小编Bir*_*ter的帖子

WPF ComboBox在一个DataTrigger之后不显示SelectedItem,但在另一个DataTrigger之后显示

因此,我有一个组合框,我想对多组数据重复使用,而不要使用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)

c# wpf selecteditem datatrigger itemssource

5
推荐指数
1
解决办法
200
查看次数

标签 统计

c# ×1

datatrigger ×1

itemssource ×1

selecteditem ×1

wpf ×1