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!");
        }
    }

编辑 2:根据请求,我不是pro从数据库项目创建并将其分配给 Listbox DataContext,而是手动创建它们以消除数据库问题,但问题仍然存在。然后我通过创建一个List<string>具有 3 个值的值并将其分配给列表框来运行一个实验。问题还在!那么这现在是列表框本身的问题吗?

4

1 回答 1

0

lbxPlans.SelectedIndex != 1

你没有在调试器中跟踪这个?

于 2013-01-29T15:48:53.973 回答