0

Linq を使用して、SQLCE データベースから 3 つの項目が取り込まれたリストボックスがあります。何らかの理由で、インデックス 1 にある項目を選択すると、リストボックスで強調表示されますが、選択の変更は発生しません。他のアイテム (インデックス 0 または 2) を選択すると、選択が正常に開始されます。

何か案は?

データベースでアイテムを確認しましたが、問題はありません。

編集: 要求されたコード

Xaml

  <ListBox x:Name="lbxPlans" Grid.Row="5" Grid.ColumnSpan="2" Margin="12" ItemsSource="{Binding}" ItemTemplate="{DynamicResource PlanTemplate}" SelectionChanged="lbxPlans_SelectionChanged">

  <DataTemplate x:Key="PlanTemplate">
        <Grid Margin="0,3">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <TextBlock HorizontalAlignment="Left" Height="Auto" TextWrapping="Wrap" Text="Run No." VerticalAlignment="Top"/>
            <TextBlock HorizontalAlignment="Left" Height="Auto" TextWrapping="Wrap" Text="{Binding RunNumber}" VerticalAlignment="Top" Grid.Column="1" Margin="6,0"/>
            <TextBlock HorizontalAlignment="Left" Height="Auto" TextWrapping="Wrap" Text="Week Day:" VerticalAlignment="Top" Grid.Column="2"/>
            <TextBlock HorizontalAlignment="Left" Height="Auto" TextWrapping="Wrap" Text="{Binding DayOfWeek}" VerticalAlignment="Top" Grid.Column="3" Margin="6,0"/>
            <TextBlock HorizontalAlignment="Left" Height="Auto" TextWrapping="Wrap" Text="Week Number:" VerticalAlignment="Top" Grid.Column="4"/>
            <TextBlock HorizontalAlignment="Left" Height="Auto" TextWrapping="Wrap" Text="{Binding WeekNumber}" VerticalAlignment="Top" Grid.Column="5" Margin="6,0"/>
            <TextBlock HorizontalAlignment="Left" Height="Auto" TextWrapping="Wrap" Text="Desc:" VerticalAlignment="Top" Grid.Column="6"/>
            <TextBlock HorizontalAlignment="Left" Height="Auto" TextWrapping="Wrap" Text="{Binding Description}" VerticalAlignment="Top" Grid.Column="7" Margin="6,0"/>
        </Grid>
    </DataTemplate>

    private void GetProgrammes()
    {
        var pro = from p in Globals.Instance.Database.Programme
                  select p;

        lbxPlans.DataContext = null;
        lbxPlans.DataContext = pro;
    }

private void lbxPlans_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
    {
        // TODO: Add event handler implementation here.

        if (lbxPlans.SelectedIndex != 1)
        {
            MessageBox.Show("Selection Changed!");
        }
    }

EDIT 2: データベース項目から作成して Listbox DataContext に割り当てるのではなく、要求どおりproにデータベースの問題を解消するために手動で作成しましたが、それでも問題は存在します。List<string>次に、3 つの値を持つ を作成し、それをリストボックスに割り当てて実験を実行しました。問題はまだあります!これはリストボックス自体の問題ですか?

4

1 に答える 1

0

lbxPlans.SelectedIndex != 1

デバッガーでこれをトレースしませんでしたか?

于 2013-01-29T15:48:53.973 に答える