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 つの値を持つ を作成し、それをリストボックスに割り当てて実験を実行しました。問題はまだあります!これはリストボックス自体の問題ですか?