دسته بندی ها
08:59 1399/10/21

مشکل اجرای خود به خود رویداد Selection Change برای ComboBox در سی شارپ

مشخصات سوال کننده :
کاربر : MohammadH     امتیاز کاربر : 18     رتبه کاربر : 40
دسته بندی : WPF سی شارپ

به این سوال امتیاز بدهید    1
تعداد بازدید این سوال : 2300
پاسخ دهنده : fateme 20:22 1399/10/21

ببینید در حالت معمول نباید این طور که شما میفرمایید بشه. بنظرم پنجره خودتون رو حذف کنید و مجدد یک پنجره جدید ایجاد کنید و یک ComboBox قرار بدید. ببینید من دقیقا کدهای شما رو از لینکی که قرار دادید کپی کردم و برنامه رو اجرا کردم و هیچ پیامی هم ظاهر نمیشه :

 

کدهای xaml

<ComboBox x:Name="Cmb_Anbar" HorizontalAlignment="Left" Margin="192,112,0,0" VerticalAlignment="Top" Width="123" Height="30" FlowDirection="RightToLeft" SelectedIndex="0" IsEditable="True" SelectionChanged="Cmb_Anbar_SelectionChanged">
            <ComboBox.ItemsPanel>
                <ItemsPanelTemplate>
                    <VirtualizingStackPanel VirtualizingPanel.IsVirtualizing="True" VirtualizingPanel.VirtualizationMode="Recycling"/>
                </ItemsPanelTemplate>
            </ComboBox.ItemsPanel>
</ComboBox>

 

کدهای سی شارپ

private void Cmb_Anbar_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    MessageBox.Show("salam");
}

پنجره طراحی 

 

پروژه بعد از اجرا بدون پیام

 

 

سعی کنید خاصیت SelectedIndex برابر با 0 نباشه برای این کنترل

به این پاسخ امتیاز بدهید    0
امتیاز: 1617 رتبه: 2
پاسخ دهنده : mojtabahakimian 08:40 1399/10/22

https://www.quora.com/Why-does-the-SelectionChange-event-run-when-it-did-not-happen-in-C

سپاس گزارم

بررسی کردم Selection Change در واقع اتفاق می افتد در صورتی که Selected Index روی 0 باشد برای همین باید  این رویداد که ایجاد کردین از توی کد XAML حذفش کنید(یا همون بخش Event ها که دابل کلیک میکنیم) و توی Window_Loaded صداش بزنید

بزنید : 

MyComboBox1.SelectionChange += MyComboBox1_SelectionChange

توی لینک بالا توضیح داده که در واقع این رویداد اتفاق می افتد چون باید کمبوباکس رو از هیچی به 0 تبدیل کنه 

نکته : اگر توی لودینگ Window_Loaded  کد هستش باید در انتهای اون کد ها Selection Change رو صدا بزنید !

ویرایش شده در دوشنبه 22 دی 1399 ساعت 12:56:31
به این پاسخ امتیاز بدهید    1
امتیاز: 155 رتبه: 10
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود