私の WPF アプリケーションには、1 つのデータグリッドと 1 つのテキスト ボックスがあります。テキストボックスの textChanged イベントで、私はこれを入れました:
myDatagrid.ItemsSource =
myListOfObjects.Where(item => item.Name.Contains(MyTextBox.Text)); //Filter
if (myDatagrid.Items.Count > 0) // If no itens, then do nothing
{
myDatagrid.SelectedIndex = 0; // If has at least one item, select the first
}
myDatagrid.Items.Refresh();
DataGrid の最初の行で、テキストが変更されたときに選択を強制することに注意してください。
しかし、残念ながら、行の色が青に変わらないため、選択内容がわかりにくくなっています。
テキストボックスの PreviewKeyDown イベントに次のようなものがあるため、これが本当に必要です。
private void myTextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Up)
{
if (!(myDataGrid.SelectedIndex <= 0))
{
myDataGrid.SelectedIndex--; // Go one position Up
}
}
if (e.Key == Key.Down)
{
if (!(myDataGrid.SelectedIndex == myDataGrid.Items.Count - 1))
{
myDataGrid.SelectedIndex++; // Go one position Down
}
}
}
そのため、テキスト ボックスがフォーカスされているときにユーザーが上キーまたは下キーを押しても、選択内容は変更されないように見えます。
データグリッドで選択したアイテムの色を青に変更する方法について何か考えはありますか?
その他:私の仮想マシンでは、動作します!! 同じコードで!それはどのように可能ですか?
それはエアログラスだと思いますが、テーマを Windows 7 Basic (仮想マシンでも同じ) に変更しても、まだ機能しません。
ありがとう、そして私の英語でごめんなさい。