ایجاد کمبوباکس با قابلیت جستجو در wpf
باسلام خدمت دوستان
من تازه وارد جمعتون شدم کمی هم ناشی هستم
ممنون میشم کمکم کنید
من میخوام کاربر بتونه با وارد کردن قسمتی از متن مواردی رو که تو کمبوباکس شامل اون متن میشن رو براش باز کنه تا بتون ازش انتخاب کن
و اگه چیزی که وارد میکنه توو لیست نباشه چیزی نتونه انتخاب کن
چیزی شبیه این
تو پروژه خودم کدهام به این شکل
کد xaml:
<ComboBox Name="cmb_Countrytitle" TabIndex="1" FlowDirection="RightToLeft"
materialDesign:HintAssist.Hint="کشور" Style="{StaticResource MaterialDesignFloatingHintComboBox}"
Margin="638,55,147,291" Height="54" SelectionChanged="Countrytitle_SelectionChanged" />
کدهای xaml.cs
////////// Countryمقدار دهی کمبوباکس
private void ComCountrytitleView()
{
//کنترل خطا
try
//اگه خطایی نبود
{
cmb_Countrytitle.ItemsSource = Db.tblCountries.ToList();
cmb_Countrytitle.DisplayMemberPath = "Countrytitle";
cmb_Countrytitle.SelectedValuePath = "CountryId";
}
//درصورت وجود خطا
catch (Exception ex)
{
MessageBox.Show("در ارتباط با دیتابیس مشکلی بوجود آماده لطفاً دوباره سعی کنید" + ex.ToString(), "خطای ارتباطی");
}
//در هر صورتی اجرا شود
finally
{
}
}
توسایت ها گشتم مواردی رو هم که گفته بودن رو انجام دادم ولی چیزی نشدن که میخواستم
ممنون میشم راهنمایی بفرماید من رو
فقط من تازه کارم کمی بیشتر هوامو داشته باشید
سلام
میتونید توی گوگل سرچ کنید و نتایج خوبی رو بهتون نمایش میده. اما این کدها رو براتون قرار میدم امیدوارم بتونید استفاده کنید
کدهای مربوط به بخش دستورات xaml
<Window x:Class="InterviewApplication.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Title="MainWindow"
Height="350"
Width="525"
DataContext="{Binding RelativeSource={RelativeSource Self}}">
<WrapPanel Orientation="Horizontal">
<ComboBox IsEditable="True"
Width="200"
Height="25"
IsTextSearchEnabled="False"
x:Name="cb"
PreviewTextInput="Cb_OnPreviewTextInput"
ItemsSource="{Binding ItemList}"
Text="{Binding SearchTextText}">
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel />
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
</WrapPanel>
</Window>
و کدهای سمت سرور شما کدهای زیر میشن
namespace Application
{
public partial class MainWindow : INotifyPropertyChanged
{
public MainWindow()
{
ItemList = new ObservableCollection<string>();
for (var i = 0; i < 1000; i++)
{
ItemList.Add($"Item {i}");
}
InitializeComponent();
}
private void Cb_OnPreviewTextInput(object sender, TextCompositionEventArgs e)
{
cb.IsDropDownOpen = true;
}
public ObservableCollection<string> ItemList { get; set; }
public string SearchTextText
{
get => _searchTextText;
set
{
if (_searchTextText == value) return;
_searchTextText = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(SearchTextText)));
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
با استفاده از دستورات بالا می تونید یک کمبوباکس با قابلیت جتسجو در wpf ایجاد کنید. خروجی کار هم مشابه زیر میشه
به صورت پیش فرض Combobox خودش قابلیت جستجو رو داره. شما کمبوباکس خودتون رو انتخاب کنید و یک کلمه رو سرچ کنید میبینید که خودش میره و سر اون item وایمیسه . کد زیر رو دقت کنید.
<ComboBox x:Name="cmb_status" IsTextSearchEnabled="True" ></combobox>
اما اگر میخواید وقتی کمبوباکس رو باز می کنید یک تکست باکس نمایش داده بشه که اطلاعات رو فیلتر کنه و فقط اطلاعات فیلتر شده رو نمایش بده باید از یک کامپوننت استفاده کنید چون به صورت پیش فرض در WPF چنین چیزی وجود نداره. برای این منظور میتونید این لینک رو مطالعه بفرمایید.
اگر هم که استفاده از پکیج های nuget رو توی wpf بلد هستید می تونید از این پکیج برای این کار استفاده کنید.
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- نحوه بزرگنمایی بخش خاصی از یک تصویر در WPF
- نحوه استفاده از رویداد SelectionChanged در WPF
- مشکل تاریخ شمسی در ویندوز 7 در WPF
- رفع خطای FileNotFoundException در Wpf
- کار با رویداد SelectedDateChanged در کامپوننت تاریخ شمسی در سی شارپ
- minimize و maximize کردن پنجره های wpf
- دانلود نرم افزار Material Design In XAML Toolkit
- نمایش عکس در DataGrid در Wpf
- حذف پروسیجر (Procedure) از مدل داده ای در Entity Framework
- اتصال دیتابیس اکسس به کریستال ریپوت