奇妙な状況強調表示の行ではありませんが、私は以下のXAMLを持っている:WPFのListBox、SelectedIndexをが
<StackPanel>
<TextBlock>Logging here...</TextBlock>
<ListBox x:Name="LoggingListBox" ItemsSource="{Binding Log}" />
</StackPanel>
私のソースはObservableCollection<string>
内のテキストのわずか5行です、と私は4行目を選択します。
LoggingListBox.SelectedIndex = 3;
しかし、次のように表示されます。
ご覧のとおり、3番目のアイテムには境界線がありますが、なぜ最初の行がハイライトされていますか?
何が起こっているのか手掛かりがありますか?
更新1/17/17: 私は問題の小さいデモ版を作りました。
1)新しいWPFプロジェクト
2)MainWindow.xaml:背後
<Window x:Class="ListBoxSelectionTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow">
<StackPanel>
<TextBlock>Logging here...</TextBlock>
<ListBox x:Name="LoggingListBox" ItemsSource="{Binding Log}" />
</StackPanel>
</Window>
3)コード:
public partial class MainWindow
{
public ObservableCollection<string> Log { get; set; }
public MainWindow()
{
InitializeComponent();
DataContext = this;
Log = new ObservableCollection<string>();
Log.CollectionChanged += (o, e) => LoggingListBox.SelectedItem = Log.Last();
Log.Add("Adding instrument: Unknown:#22");
Log.Add("Adding instrument: Unknown:#22");
Log.Add("Adding instrument: Unknown:#22");
Log.Add("Adding instrument: Unknown:#22");
Log.Add("Adding instrument: Unknown:#22");
}
}
4:実行プログラム: は、起動時に次のようになります。
5:(セットがリストボックスにフォーカス)TABボタンを押すと、今のようになります。私は何とかWPFが本当に望んでいる適切な順序のうちの選択を設定してい疑う
。
それが唯一のコードであれば、すべてがうまくいくはずです。どのような 'SelectionMode'を使用していますか? SelectedIndexを設定する以外に何か他の選択をしていますか?選択したインデックス(ボタンクリックハンドラ)の変更はどこで呼び出されますか? – icebat