2015-03-27 4 views
1

Как я могу сортировать элементы ListBox с использованием значения EnterBox enterd. матча случай ListBox Items показать верхнюю часть списка Вот мой кодСортировка списков на основе значения TextBox

XAML

<Grid> 
    <TextBox HorizontalAlignment="Left" Height="23" Margin="67,39,0,0" TextWrapping="Wrap" Text="{Binding CustomerSort,UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Top" Width="120"/> 
    <ListBox Margin="67,79,185,26" Background="LightYellow" 
      DisplayMemberPath="Name" ItemsSource="{Binding CustomerColloction}"/> 
</Grid> 

C# код

public class Customers 
{ 
    public String Name { get; set; } 
    public Int32 Age { get; set; } 
} 

public class ViewModel 
{ 
    public ViewModel() 
    { 
     CustomerColloction = new ObservableCollection<Customers>(); 
     CustomerColloction.Add(new Customers() { Name = "AAA", Age = 25 }); 
     CustomerColloction.Add(new Customers() { Name = "AA", Age = 25 }); 
     CustomerColloction.Add(new Customers() { Name = "BBB", Age = 26 }); 
     CustomerColloction.Add(new Customers() { Name = "BB", Age = 24 }); 
     CustomerColloction.Add(new Customers() { Name = "AAAA", Age = 13 }); 
     CustomerColloction.Add(new Customers() { Name = "BB", Age = 11 }); 
     CustomerColloction.Add(new Customers() { Name = "XYZ", Age = 44 }); 
    } 
    public ObservableCollection<Customers> CustomerColloction { get; set; } 

    private String _CustomerSort = String.Empty; 
    public String CustomerSort 
    { 
     get 
     { 
      return _CustomerSort; 
     } 
     set 
     { 
      _CustomerSort = value; 
      NotifyPropertyChanged("CustomerSort"); 
     } 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 
    protected void NotifyPropertyChanged(string propertyName) 
    { 
     if (this.PropertyChanged != null) 
      this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 
    } 
} 

Я хочу, чтобы получить результат, как если ввести АА в TextBox , Показать ячейку списка формы сортировки

  • AA
  • AAA
  • AAAA
  • BB
  • BB
  • BBB
  • XYZ
+0

Что вы пытаетесь достичь здесь? Когда пользователь вводит AA в качестве входных данных, как вы собираетесь использовать это для сортировки? –

+0

Текст в тексте матча должен отображаться первым –

+0

Возможно, какой-то Linq? '_result.OrderBy (i => i.Name);' –

ответ

1

Set выпадающих и установить выпадающим режим
Лучше сортировать наблюдаемые коллекции и установить его в ListBox CustomerColloction .OrderBy (д => q.Name) .ToList();

0

Я могу увидеть его довольно vauge требование, но только, чтобы дать вам представление о том вы можете управлять вашей связанный объект как это для достижения аналогичных результатов

Следующий код был напечатан мобильным устройством е и не проверен ..

CustomerColloction.Where(p=>p.name.Contains(CustomerSort)).OrderBy(q=>q.Name).ToList().Add(CustomerColloction.where(r=>r.name.Contains(CustomerSort)=false).OrderBy(s=>s.Name).toList() 

И в сеттер youe CustomerSort уведомления рейза свойства для вас оценки коллекции

+0

Но это не влияет на UI –

+0

Whr hv u положите этот код – Muds

+0

Внутри свойства сортировки клиента –

Смежные вопросы