نمایش نتایج 1 تا 3 از 3

نام تاپیک: رخ ندادن وقفه PropertyChanged در DependencyProperty از نوع <ObservableCollection<string

  1. #1

    رخ ندادن وقفه PropertyChanged در DependencyProperty از نوع <ObservableCollection<string

    سلام، یه DependencyProperty از نوع <ObservableCollection<string ایجاد کردم، حالا وقتی به کمک متد list.Add، آیتمی میخوام بهش اضافه کنم، وقفه PropertyChanged رخ نمیده، چرا؟ و چطور حلش کنم.

    این کد DependencyProperty من هستش :
    public static readonly DependencyProperty SelectedItemsProperty = DependencyProperty.Register(    "SelectedItems",
    typeof(ObservableCollection<string>),
    typeof(MultiSelectComboBoxUC),
    new FrameworkPropertyMetadata(
    new ObservableCollection<string>(),
    FrameworkPropertyMetadataOptions.AffectsRender | FrameworkPropertyMetadataOptions.BindsTwoWayByDefa ult,
    new PropertyChangedCallback(SelectedItemsPropertyChang ed)));


    public ObservableCollection<string> SelectedItems
    {
    get { return (ObservableCollection<string>)GetValue(SelectedIte msProperty); }
    set { SetValue(SelectedItemsProperty, value); }
    }


    private static void SelectedItemsPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
    Debug.WriteLine("SelectedItemsPropertyChanged");
    }


    وقفه کلیک روی Checkbox هم وقتی رخ میده، یه آیتمی به list بالا میخوام اضافه کنم، ولی وقفه PropertyChanged رخ نمیده :
    private void CheckBox_Click(object sender, RoutedEventArgs e){
    Debug.WriteLine("CheckBox_Click");


    if (SelectedItems.Contains("test"))
    SelectedItems.Remove("test");
    }

  2. #2

    نقل قول: رخ ندادن وقفه PropertyChanged در DependencyProperty از نوع <ObservableCollection<string

    نقل قول نوشته شده توسط md3848 مشاهده تاپیک
    سلام، یه DependencyProperty از نوع <ObservableCollection<string ایجاد کردم، حالا وقتی به کمک متد list.Add، آیتمی میخوام بهش اضافه کنم، وقفه PropertyChanged رخ نمیده، چرا؟ و چطور حلش کنم.

    این کد DependencyProperty من هستش :
    public static readonly DependencyProperty SelectedItemsProperty = DependencyProperty.Register(    "SelectedItems",
    typeof(ObservableCollection<string>),
    typeof(MultiSelectComboBoxUC),
    new FrameworkPropertyMetadata(
    new ObservableCollection<string>(),
    FrameworkPropertyMetadataOptions.AffectsRender | FrameworkPropertyMetadataOptions.BindsTwoWayByDefa ult,
    new PropertyChangedCallback(SelectedItemsPropertyChang ed)));


    public ObservableCollection<string> SelectedItems
    {
    get { return (ObservableCollection<string>)GetValue(SelectedIte msProperty); }
    set { SetValue(SelectedItemsProperty, value); }
    }


    private static void SelectedItemsPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
    Debug.WriteLine("SelectedItemsPropertyChanged");
    }


    وقفه کلیک روی Checkbox هم وقتی رخ میده، یه آیتمی به list بالا میخوام اضافه کنم، ولی وقفه PropertyChanged رخ نمیده :
    private void CheckBox_Click(object sender, RoutedEventArgs e){
    Debug.WriteLine("CheckBox_Click");


    if (SelectedItems.Contains("test"))
    SelectedItems.Remove("test");
    }
    وقتی خود SelectedItems با <ObservableCollection<string دیگری جایگزین بشه SelectedItems تغییر کرده و SelectedItemsPropertyChanged رخ داده.
    ولی وقتی آیتم های داخل SelectedItems تغییر کنند دیگه <ObservableCollection<string که تغییری نکرده، همونه که بود.
    رخداد ObservableCollection<T>.CollectionChanged رو به یک متد متصل کنید تا با تغییرات داخلش متوجه تغییر بشوید.

  3. #3

    نقل قول: رخ ندادن وقفه PropertyChanged در DependencyProperty از نوع <ObservableCollection<string

    آره همین کارو کردم درست شد
    ObservableCollection<string> SelectedItemsBuff = new ObservableCollection<string>();
    foreach (var item in SelectedItems)
    SelectedItemsBuff.Add(item);

    //...

    SelectedItems = SelectedItemsBuff;

    ممنون

تاپیک های مشابه

  1. سوال: DependencyProperty
    نوشته شده توسط elec60 در بخش WPF
    پاسخ: 7
    آخرین پست: پنج شنبه 13 آذر 1393, 22:54 عصر
  2. حرفه ای: DependencyProperty از نوع Control
    نوشته شده توسط i.lover3000 در بخش WPF
    پاسخ: 0
    آخرین پست: سه شنبه 01 فروردین 1391, 00:35 صبح
  3. پاسخ: 9
    آخرین پست: پنج شنبه 24 آذر 1390, 21:09 عصر
  4. تبدیل نوع String به نوع Form
    نوشته شده توسط magnet در بخش C#‎‎
    پاسخ: 3
    آخرین پست: جمعه 28 مرداد 1390, 03:54 صبح
  5. تبدیل نوع string به نوع form
    نوشته شده توسط faravani در بخش VB.NET
    پاسخ: 4
    آخرین پست: پنج شنبه 18 تیر 1388, 10:09 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •