Сначала код (извините, если его не 100%) Я не эксперт, и тогда вопрос следует.Сохранять список выбора товаров
public partial class Window1 : Window
{
CollectionView cv;
public Window1()
{
InitializeComponent();
List<Person> ppl = new List<Person>();
BitmapImage b = new BitmapImage(new Uri(@"http://i.stackoverflow.com/Content/Img/stackoverflow-logo-250.png",UriKind.Absolute));
ppl.Add(new Person(b, "world1"));
ppl.Add(new Person(b, "world2"));
ppl.Add(new Person(b, "world3"));
ppl.Add(new Person(b, "world4"));
ppl.Add(new Person(b, "world5"));
ppl.Add(new Person(b, "world6"));
lb.ItemsSource = ppl;
lb.SelectedIndex = 1;
cv = (CollectionView)CollectionViewSource.GetDefaultView(lb.ItemsSource);
new TextSearchFilter(cv, textBox1);
}
}
public class TextSearchFilter
{
public TextSearchFilter(CollectionView cv, TextBox tb)
{
string filterText = "";
cv.Filter = delegate(object obj)
{
Person p = obj as Person;
int index = p.Info.IndexOf(filterText,0,StringComparison.InvariantCultureIgnoreCase);
return index > -1;
};
tb.TextChanged += delegate
{
filterText = tb.Text;
cv.Refresh();
};
}
}
class Person
{
private BitmapImage myImage;
private string myInfo = "";
public BitmapImage Image
{
get { return myImage; }
set { myImage = value; }
}
public string Info
{
get { return myInfo; }
set { myInfo = value; }
}
public Person(BitmapImage Image, string Info)
{
this.Image = Image;
this.Info = Info;
}
}
Спасибо за чтение до сих пор, как вы поняли бы теперь, что код фильтрует ListBox на основе ввода в текстовом поле, которое работает как шарм кстати.
Моя проблема заключается в том, как сохранить выбор во время фильтрации. Когда окно загружается, в списке есть все элементы в нем, и я выбираю первый элемент, затем я ввожу что-то в текстовое поле и фильтры списка, чтобы показывать только соответствующие элементы, после выбора другого элемента я удаляю весь текст из текста который возвращает его в исходное состояние, но на этот раз выбор изменился только на элемент, который я выбрал в отфильтрованном виде (поэтому вместо двух элементов, которые отображаются как выбранные, только один отображается как выбранный). Такое поведение очевидно, поскольку я фильтрую коллекцию, поэтому в момент изменения коллекции выбор теряется.
Есть ли способ сохранить выбор? любые указатели?
Большое спасибо.