باسلام خدمت دوستان
من تازه وارد جمعتون شدم کمی هم ناشی هستم
ممنون میشم کمکم کنید
من میخوام کاربر بتونه با وارد کردن قسمتی از متن مواردی رو که تو کمبوباکس شامل اون متن میشن رو براش باز کنه تا بتون ازش انتخاب کن
و اگه چیزی که وارد میکنه توو لیست نباشه چیزی نتونه انتخاب کن
چیزی شبیه این
تو پروژه خودم کدهام به این شکل
کد 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 بلد هستید می تونید از این پکیج برای این کار استفاده کنید.
تاریخ :
1403/06/24
- ساعت :
08:52:00 PM
- بازدید :
319
- پاسخ :
1
|
تاریخ :
1398/09/16
- ساعت :
11:41:00 AM
- بازدید :
4283
- پاسخ :
1
|
تاریخ :
1398/09/07
- ساعت :
02:15:00 PM
- بازدید :
3876
- پاسخ :
5
|
تاریخ :
1403/05/16
- ساعت :
05:43:00 AM
- بازدید :
662
- پاسخ :
0
|
تاریخ :
1398/09/05
- ساعت :
06:04:00 PM
- بازدید :
3174
- پاسخ :
2
|
تاریخ :
1403/04/12
- ساعت :
07:27:00 PM
- بازدید :
658
- پاسخ :
0
|
تاریخ :
1398/09/14
- ساعت :
09:43:00 PM
- بازدید :
3316
- پاسخ :
2
|
تاریخ :
1398/09/17
- ساعت :
12:33:00 AM
- بازدید :
5857
- پاسخ :
2
|
تاریخ :
1402/04/18
- ساعت :
02:50:00 PM
- بازدید :
1230
- پاسخ :
1
|
تاریخ :
1402/01/19
- ساعت :
12:30:00 PM
- بازدید :
1560
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2013
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
79
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
112
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
430
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
931
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1161
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
599
- پاسخ :
1
|