ترکیب Linq و Bind در WPF برای ساختن Live Search
حتما تابهحال برنامههای زیادی رو دیدید که وقتی عبارتی رو برای جستجو وارد میکنید، در همون لحظه همزمان با تایپ شما، نتایج ممکن رو نشون میده. تو این پست قصد دارم با استفاده از امکانات Binding و Linq در #C و WPF این کار رو آموزش بدم.
گام اول: ایجاد TextBox و ListBox
در ابتدا لازمه که برای گرفتن ورودی از کاربر و نمایش نتایج جستجو، از یک عدد TextBox به همراه ListBox استفاده کنیم. نام TextBox را textbox قرار دهید.
گام دوم: تعیین منبع داده
با توجه به اینکه میخواهیم از این منبع برای ItemsSource یک ListBox استفاده کنیم، لازم است که جنس آن یک IEnumerable باشد. من در این مثال ابتدا یک کلاس Static تعریف کردهام و سپس در آن یک لیست Static از چند رشته Url ساختهام
گام سوم: نوشتن مبدل رشته به لیست
برای Binding مرحله بعد لازم است که یک مبدل یکطرفه با قابلیت تبدیل رشته (عبارت مورد جستجو) به نتیجهی جستجو نوشته شود
گام چهارم: Bind کردن ItemSource
در نهایت کافیست ItemSource مربوط به ListBox را به مقدار Text کنترل TextBox با استفاده از مبدل مرحله قبل Bind کنیم.
اکنون با تایپ کردن عبارت مورد نظر برای جستجو در TextBox تمامی نتایج ممکن همزمان با تایپ حروف نمایش داده میشوند.