wpf كومبوكس 'سيلكتيديتم ملزمة إلى ديبندنسيبروبيرتي لا يتم تحديث




binding combobox (2)

طيب لقد وجدت كيفية القيام بذلك.

أعلن بلدي ديبندنسيبروبيرتي باستخدام الزائد ووث رد مثل هذا:

public static readonly DependencyProperty SelectedStuffProperty =
    DependencyProperty.Register("SelectedStuff", typeof(KeyValuePair<int, string>), typeof(MyUserControl), new UIPropertyMetadata(default(KeyValuePair<int, string>), new PropertyChangedCallback(SelectedStuffChanged));

وفي الرد، أفعل ذلك:

private static void SelectedStuffChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
    MyUserControl c = d as MyUserControl;
    c.LoadThings();
}

https://code.i-harness.com

لدي مربع تمرير، الذي سيلكتيديتم لا بد أن خاصية التبعية.

public IEnumerable<KeyValuePair<int,string>> AllItems
{
    get { return _AllItems; }
    set
    {
        _AllItems = value;
        this.NotifyChange(() => AllItems);
    }
}

public KeyValuePair<int, string> SelectedStuff
{
    get { return (KeyValuePair<int, string>)GetValue(SelectedStuffProperty); }
    set
    {
        SetValue(SelectedStuffProperty, value);
        LoadThings();
    }
}

public static readonly DependencyProperty SelectedStuffProperty =
    DependencyProperty.Register("SelectedStuff", typeof(KeyValuePair<int, string>), typeof(MyUserControl), new UIPropertyMetadata(default(KeyValuePair<int, string>)));

و زمل:

<ComboBox DisplayMemberPath="Value"
          ItemsSource="{Binding AllItems}"
          SelectedItem="{Binding SelectedStuff, Mode=TwoWay}" />

يتم ربط البيانات وعرضها بشكل صحيح، ولكن عند تحديد قيمة أخرى في LoadThings() ، لا يتم استدعاء set ، وليس أسلوب LoadThings() يسمى.

هل هناك سبب واضح؟

شكرا مقدما

تصحيح

اعتدت سنوب لعرض داخل مربع التحرير والسرد، وعندما أغير القيمة، يتم تغيير مربع تمرير 'سيليكتديتم أيضا.
أنا أيضا فحص في التعليمات البرمجية، ويتم تغيير الملكية. ولكن أسلوبي لا يسمى (كما أنني لا أذهب من خلال set ، وبالتالي فإن المشكلة لا تزال هناك ...


من مسن

في جميع الظروف باستثناء ظروف استثنائية، يجب تنفيذ تنفيذ المجمع الخاص بك فقط إجراءات جيتفالو و سيتفالو، على التوالي. يتم مناقشة السبب في هذا الموضوع زمل تحميل وتبعيات الخصائص.

وهناك يمكنك أن تقرأ

يستخدم معالج وف زمل أساليب نظام الملكية لخصائص التبعية عند تحميل زمل الثنائية وخصائص المعالجة التي هي خصائص التبعية. هذا يتجاوز بشكل فعال مغلفات الملكية.





selecteditem