0

アプリケーションにデータグリッドがあり、データベースからデータを取得しています。これは、データテーブルに配置し、dataGrid1.ItemsSource=DT.DefaultViewを使用して表示することで機能します。

検索ボックスとして使用するテキストボックスもあります。検索ボックスでデータグリッドを検索して正しいデータを表示したいのですが。ハイライトを表示するだけでなく、検索ボックスへのユーザー入力に基づいて、実際にデータを非表示または再表示します。

複数のフォーラムを検索しましたが、見つけたソリューションのどれも私のアプリケーションで機能しませんでした。だから誰かが私に解決策を与えることができれば私は非常に感謝するでしょう。

編集、問題を分類

Private Sub txtSearchBox_TextChanged(ByVal sender As System.Object, ByVal e As System.Windows.Controls.TextChangedEventArgs) Handles txtSearchBox.TextChanged

    If txtSearchBox.Text = "" Then
        dataGrid1.ItemsSource = DT.DefaultView 'puts the data in to the datagrid
        DT.DefaultView.RowFilter = Nothing
    Else
        chosenFilter = txtSearchBox.Text

        'sets the datagrid filter
        DT.DefaultView.RowFilter = "TYPEID LIKE '%" & chosenFilter & "%'"
    End If

End Sub
4

3 に答える 3

2

問題を解決するオプションはいくつかあります。

1) CollectionView でフィルターを使用する

コード ビハインド/ViewModel で ListCollectionView を作成します。データ項目を collectionsView に入れ、DataGrid Itemssoure をそれにバインドします。次に、TextInput に応じてアイテムをフィルタリングする CollectionView に Filter Delegate を渡します。テキストが変更されるたびに CollectionView を更新/フィルター処理するために、Textbox の TextChanged イベントにハンドラーをアタッチします。これはここでも説明されています:コレクションからアイテムをフィルターするにはどうすればよいですか?

2) Jeff Wilcox AutocompleteBox を使用し、カスタム SelectionAdapter を実装します。

これは少しトリッキーですが、よりエレガントです。WPF Toolkit - 2010 年 2 月リリースに含まれている Jeff Wilcox AutoCompleteBox が必要です。ここからダウンロードできます: WPF Toolkit Feb 2010。この非常に便利なコントロールの機能については、WPF Toolkit での AutoCompleteBox の使用と、AutoCompleteBox コントロール: The missing guide で説明されてます。カスタム選択アダプタの実装方法については、次のページで説明しています: Page Up/Page Down アダプタ

于 2012-07-02T10:59:46.440 に答える
0
Private Sub txtSearchBox_TextChanged(ByVal sender As System.Object, ByVal e As System.Windows.Controls.TextChangedEventArgs) Handles txtSearchBox.TextChanged

If txtSearchBox.Text = "" Then
    dataGrid1.ItemsSource = DT.DefaultView 'puts the data in to the datagrid
    DT.DefaultView.RowFilter = Nothing
Else
    chosenFilter = txtSearchBox.Text

    'sets the datagrid filter
    DT.DefaultView.RowFilter = "TYPEID LIKE '%" & chosenFilter & "%'"
End If

End Sub
于 2012-09-10T08:35:38.147 に答える
0

検索ボックスの変更をグリッドの ItemsSource に適用します。必要なのはこれだけです。

于 2012-07-02T09:15:03.633 に答える