نقل قول: ساخت CheckBox دینامیک
سلام
از سی شارپ چرا استفاده میکنید؟
از کد xaml استفاده کنید .
از DataTemplate و Binding استفاده کنید .
مثلا ItemsControl (مثل ListBox) ای را که به یک کالکشن (مثلا لیست نام شهرها) Binding کردید ، یک DataTemplate ای را برای اون ListBox بنویسید (پروپرتی ItemTemplate ئه ListBox را مقداردهی کنید) که این DataTemplate ، یک CheckBox داشته باشه .
نقل قول: ساخت CheckBox دینامیک
ممنون از پاسخی که دادید. الان حالت StackPanel به ListBox تغییر دادم و اسامی شهرهای داخل دیتابیس به صورت CheckBox در داخل ListBox نمایش داده شده.میشه راهنمایی کنید چطور با انتخاب چند شهر باهم یا انتخاب تکی شهر با زدن چک باکس نام شهر ، فقط اطلاعات مربوط به شهرهای انتخابی درون دیتاگریدویو نمایش داده بشه؟
شبیه این سایتهای فروشگاهی که نتیجه جستجو براساس فیلدهای انتخابی محدود می کنه...
مثلا یه دونه Button باشه که با زدنش آیتمهای انتخابی فقط نمایش بده:ناراحت:
نقل قول: ساخت CheckBox دینامیک
نقل قول:
نوشته شده توسط
amirhossein_z
سلام خدمت دوستان و مهندسین محترم.
می خواستم بدونم کسی می تونه راهنمایم کنه چطور میشه داخل StackPanel با توجه به یک ستون خاص در sql (مثلا ستون نام شهرها) با توجه به تعداد شهرهایی که داخل دیتابیس نوشته شده یا حتی بعدا اضافه میشه ، CheckBox برای انتخاب اون آیتم به صورت تکی یا انتخاب چند مورد مثلا برای جستجو درست کرد...
داخل فرم wpf یک StackPanel قرار دادم به اسم st1 و به دیتابیس sql متصل هست کد برای ساختن CheckBox به صورت زیرنوشتم
() private void Dynamic
{
;()var itemlist = MyDataBase.CityName.ToList
foreach (var itemAZ in itemlist)
{
;()CheckBox chk = new CheckBox
;()chk.Content = itemAZ.branch_Name.ToString
;st1.Children.Add(chk)
}
}
کد بالا در فرم لود قرار می دم اسامی شهرهای داخل دیتابیس میاد فقط نمی تونم وقتی یک یا چندتا از آیتم هارو انتخاب می کنم اسامی اون بعد از انتخاب به داخل textbox متنقل بشه ..
ممنون میشم راهنمایی کنید :متفکر:
سلام شما همینجا که چکباکس رو ساختی براش ایونت checked و uncheked رو ایجاد کنید و کد دلخواه رو بنویسید
نقل قول: ساخت CheckBox دینامیک
میشه بیشتر توضیح بدید...
من گزینه های داخل ListBox براساس گزینه های دیتابیس به صورت CheckBox درآوردم (نام هر شهری جدید اضافه بشه خودکار داخل لیست باکس به صورت چک باکسی نمایش داده میشه)
الان مثلا یکسری اطلاعات براساس نام شهر وارد شده و قصد داریم این اطلاعات براساس شهرهایی که از داخل لیست انتخاب میشه ، نمایش داده بشه ،
مثلا شهر تهران - جمعیت 12 میلیون
مشهد - جمعیت 8 میلیون
اصفهان - جمعیت 5 میلیون
حالا اگر مشهد و تهران انتخاب شد با زدن دکمه داخل دیتاگرید نام شهر و جمعیت همین دو شهر نشادن داده بشه ، تکی هم انتخاب شده به صورت تک:ناراحت:
نقل قول: ساخت CheckBox دینامیک
الان مشکل تشخیص شهرهای تیک خورده است یا ایجاد کوئری؟
نقل قول: ساخت CheckBox دینامیک
نقل قول:
نوشته شده توسط
amirhossein_z
میشه بیشتر توضیح بدید...
من گزینه های داخل ListBox براساس گزینه های دیتابیس به صورت CheckBox درآوردم (نام هر شهری جدید اضافه بشه خودکار داخل لیست باکس به صورت چک باکسی نمایش داده میشه)
الان مثلا یکسری اطلاعات براساس نام شهر وارد شده و قصد داریم این اطلاعات براساس شهرهایی که از داخل لیست انتخاب میشه ، نمایش داده بشه ،
مثلا شهر تهران - جمعیت 12 میلیون
مشهد - جمعیت 8 میلیون
اصفهان - جمعیت 5 میلیون
حالا اگر مشهد و تهران انتخاب شد با زدن دکمه داخل دیتاگرید نام شهر و جمعیت همین دو شهر نشادن داده بشه ، تکی هم انتخاب شده به صورت تک:ناراحت:
سلام.
مگه لست باکسی که دارید خصوصیت CheckedItems نداره؟!!!!!!!
نقل قول: ساخت CheckBox دینامیک
نقل قول:
نوشته شده توسط
amirhossein_z
ممنون از پاسخی که دادید. الان حالت StackPanel به ListBox تغییر دادم و اسامی شهرهای داخل دیتابیس به صورت CheckBox در داخل ListBox نمایش داده شده.میشه راهنمایی کنید چطور با انتخاب چند شهر باهم یا انتخاب تکی شهر با زدن چک باکس نام شهر ، فقط اطلاعات مربوط به شهرهای انتخابی درون دیتاگریدویو نمایش داده بشه؟
شبیه این سایتهای فروشگاهی که نتیجه جستجو براساس فیلدهای انتخابی محدود می کنه...
مثلا یه دونه Button باشه که با زدنش آیتمهای انتخابی فقط نمایش بده:ناراحت:
سلامی مجدد
شما wpf کار میکنید اما از قابلیت هاش استفاده نمیکنید و بصورت دستی کد مینویسید .
این ، کارتون را در کدهای پیچیده ، سخت میکنه .
شما طبق توضیحات تون میخواید فیلتر کنید .
wpf برای این کار ، CollectionView (و CollectionViewSource) را داره که باید بهش Binding کنید .
وقتی شما به یک مجموعه (مثل List و ...) ، Binding میکنید ، مستقیما به اون شیِ مجموعه Binding نمیشه ، بلکه به شی CollectionView ای که خودش از اون مجموعه ی اصلی (مثل List و ...) استفاده میکنه ، Binding میشه .
بعد شما میتونید اون CollectionView را فیلتر کنید که مستقیما در شیِ Binding ای که بهش شده ، نمایش میده .
How to: Filter Data in a View - WPF .NET Framework | Microsoft Learn
Filtering Elements in a Collection in WPF (c-sharpcorner.com)
old-wpf-blog/29-MultipleFilters at master · bstollnitz/old-wpf-blog · GitHub
اما اگر از CollectionView استفاده نمیکنید (که مخصوصا در برنامه های بزرگ پیشنهاد نمیکنم که از این روش استفاده نکنید) ، حداقل میتونید از فقط Binding استفاده کنید . این طوری که یک مجموعه (مثل لیست و ...) ی مجزا برای فیلتر بسازید و DataGrid یا کنترل مورد نظرتون را بهش Binding کنید .
اما شما کاملا از روش دستی دارید استفاده میکنید و در رویدادتون کد مینویسید که کارتون را برای ویرایش و ... سخت میکنه .