1

ObservableCollection オブジェクトにバインドされたコンボ ボックスがあるこの WPF を作成しました。Windows 7 でアプリを実行すると、バインディングは完全に機能し、すべて問題ありません。WindowsXPでこれを実行すると、すべてがうまく見えますが、ドロップダウンは空です。誰でもこれを経験したことがあり、何とか修正しましたか?

このための XAML は次のとおりです (その一部)。

<StackPanel x:Name="spUnrecRxItems">
    <Border BorderBrush="Silver" CornerRadius="3,3,3,3" BorderThickness="0,3,0,0" Height="Auto" 
                    HorizontalAlignment="Left" Margin="23,6,0,0" Width="200" Background="#FFEFEEEE">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
            <TextBlock Name="tbUR1" Foreground="#FFDE2226" FontSize="14" FontWeight="Bold" 
        TextWrapping="Wrap" Width="Auto" HorizontalAlignment="Left" FontFamily="Arial" Grid.Row="0" 
        Margin="10,10,0,0" Text="{Binding DrugName}" />
            <TextBlock Foreground="#FF484747" HorizontalAlignment="Left" 
           Margin="10,0,0,0"  FontSize="12" Text="{Binding FillMinMaxDate}" Grid.Row="1" />
            <TextBlock Foreground="#FF484747" HorizontalAlignment="Left" 
           Margin="10,0,0,0"  FontSize="12" Text="{Binding PhysiciansName}" Grid.Row="2" />
            <TextBlock ForceCursor="False" Foreground="#FF707170" HorizontalAlignment="Left" 
       Margin="10,0,0,0" Name="tbSourceCount" VerticalAlignment="Top" FontSize="12" 
               MouseDown="tbSource_MouseDown" Text="{Binding SourceCount, StringFormat=Source ({0})}" Grid.Row="3">
            </TextBlock>
        </Grid>
    </Border>
    <Expander x:Name="expManualRec" Background="DarkGray" Width="180" HorizontalAlignment="Center">
        <Expander.Header>
            <TextBlock HorizontalAlignment="Center" Text="Reconcile" Foreground="White" />
        </Expander.Header>
        <Grid Height="Auto">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
            <ComboBox x:Name="cboReconType" HorizontalAlignment="Center" Margin="8 0 0 0" Width="160" Height="Auto" Grid.Row="1" 
              SelectionChanged="cboReconType_SelectionChanged" ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=ItemsControl}, Path=DataContext.ReconTypes}" />
            <ComboBox x:Name="cboRecReason" HorizontalAlignment="Center" Margin="8 0 0 0" Width="160" Height="Auto" Grid.Row="2"
                  SelectedValue="{Binding code}">
                <ComboBox.Style>
                    <Style TargetType="ComboBox">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding ElementName=cboReconType, Path=Text}" Value="Create A Question">
                                <Setter Property="ComboBox.Visibility" Value="Hidden" />
                            </DataTrigger>
                            <DataTrigger Binding="{Binding ElementName=cboReconType, Path=Text}" Value="No Action">
                                <Setter Property="ComboBox.Visibility" Value="Visible" />
                                <Setter Property="ItemsSource" Value="{Binding RelativeSource={RelativeSource AncestorType=ItemsControl}, Path=DataContext.ReconReasons}" />
                                <Setter Property="DisplayMemberPath" Value="description" />
                                <Setter Property="SelectedValuePath" Value="code" />
                            </DataTrigger>
                            <DataTrigger Binding="{Binding ElementName=cboReconType, Path=Text}" Value="Previous Questionnaire">
                                <Setter Property="ComboBox.Visibility" Value="Visible" />
                                <Setter Property="ItemsSource" Value="{Binding RelativeSource={RelativeSource AncestorType=ItemsControl}, Path=DataContext.InterviewQuestionnaires}" />
                                <Setter Property="DisplayMemberPath" Value="QuestionnaireName" />
                                <Setter Property="SelectedValuePath" Value="interviewquestionnaire_id" />
                            </DataTrigger>
                            <DataTrigger Binding="{Binding ElementName=cboReconType, Path=Text}" Value="">
                                <Setter Property="ComboBox.Visibility" Value="Visible" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </ComboBox.Style>
            </ComboBox>
4

2 に答える 2

0

これは、何らかのスタイルが原因で発生している可能性があります。コンボ ボックスのテキストの前景色が白くなり、空に見えるようです。

Snoop を使用してこれを確認し、アプリケーションのいずれかのスタイルでコンボ ボックス項目の前景色がシステム カラーまたは白に設定されているかどうかを調べる必要があります。

于 2012-06-10T06:27:48.717 に答える
0

私は WPF での新しい仕事で 8 か月しか経験していない、かなり新しいものです。

Windows 8 で同じシナリオのコーディングを行いましたが、Windows 7 と XP ではプログラムに ComboBox のリストが読み込まれませんでした。

最後に、私は EF6 を使用して SQL Server DB からデータを取得しましたが、その Combobox リストでは SQL を使用しました (EF のテーブルを DB から更新するのに問題があり、単に何かを作りたかっただけです)。動作するので、SQLConnection と SQLCommand で SQL を使用しました。) EF にそれを実行させたので、Win7 と WinXP コンピューターも、私が計画したように動作しています。

于 2014-10-03T12:37:49.373 に答える