2

http://www.devexpress.com/Products/NET/Controls/WPF/Editors/lookup-editor.xmlのように、結果を行として表示する自動検索コントロールを作成する必要があります。ただし、ここではグラフィックとチェックボックスは必要ありません。外観のような単純なリストビューが機能します。

WPFを使用してユーザーコントロールを作成する方法を提案してください。

4

2 に答える 2

2

ListViewの並べ替え、フィルタリング、グループ化に関するすばらしい記事があります

基本的に、CollectionViewSourceをListCollectionViewに設定します。次に、Filterプロパティを使用してListViewをフィルタリングできます。

于 2012-04-26T14:05:30.820 に答える
1

MVVMアプローチを使用している場合は、次のようにすることができます。

  • 検索テキストボックステキストメンバー、ListViewのItemsSourceおよびSelectedItemをViewModelにバインドします
  • TextBoxのバインディングに「UpdateSourceTrigger=PropertyChanged」を設定します
  • TextBoxがバインドされているプロパティのセッターで、ItemsSourceコレクションを検索し、SelectedItemバインドされたプロパティを設定するロジックを追加します。

このようなもの:

XAML:

<TextBox Text="{Binding Path=SearchTerm, UpdateSourceTrigger=PropertyChanged}"/>

<ListView ItemsSource="{Binding Path=SourceCollection}" SelectedItem="{Binding Path=SelectedSearchItem, Mode=TwoWay}" />

コード:

public class ViewModel : INotifyPropertyChanged
{
     public string SearchTerm 
     {
          get { return searchTerm; }
          set {
                searchTerm = value;
                SelectedSearchItem = SourceCollection.FirstOrDefault(foo => foo.Name.Contains(searchTerm));
          }
     }

     public Foo SelectedSearchItem 
     { 
           get { return selecedSearchItem; } 
           set {
                 selectedSearchItem = value;
                 // Raise PropertyChanged 
           }
     }


     public ObservableCollection<Foo> SourceCollection { get; set;}
}
于 2012-04-26T14:00:42.220 に答える