Pergunta

eu tenho um IcollectionView propriedade chamada Suggestions que é bishilk para uma caixa de listar ItemsSource.

Eu uso o seguinte código para configurá -lo

// Set up Suggestions collection for filtering purposes
var collectionViewSource = new CollectionViewSource();

collectionViewSource.Source = SomeCollection; // SomeCollection is of type IEnumerable!! 
// Create view
Suggestions = collectionViewSource.View;

Suggestions.Filter = new Predicate<object>(
                                       item =>
                                       item.ToString().StartsWith(SearchString, true, CultureInfo.CurrentCulture))

SearchString é BIMIND para uma caixa de texto Text propriedade, que sempre que muda os gatilhos Suggestions.Refresh() Isso refilhe a coleção.

Isso funciona bem, mas mostra todos os itens disponíveis. Como posso fazê -lo mostrar apenas os principais itens X?

Foi útil?

Solução

Você não pode simplesmente mover seu filtro Predicate condição para o SomeCollection.Where cláusula?:

SomeCollection = SomeCollection.Where(item => item.ToString().StartsWith(
    SearchString, true, CultureInfo.CurrentCulture)).Take(10);
collectionViewSource.Source = SomeCollection;

Outras dicas

Associe a visibilidade a todos os itens filtrados e defina a visibilidade como verdadeira apenas para os principais itens X ou,

Primeiro filtre todos os itens e coloque os itens X superiores em outra propriedade e vincule -os à interface do usuário

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top