2015-11-14 7 views
6

और/या मैं अपने नियंत्रण पर DependencyProperty को कैसे परिभाषित करता हूं जो AffectsMeasure को निर्दिष्ट करता है?UWP में FrameworkPropertyMetadata कहां है?

संपादित करें: ओह, बस यह देखा - क्या मुझे InvalidateMeasure पर this पर संपत्ति परिवर्तनीय में कॉल करना है?

उत्तर

-1

क्षमा करें। यूडब्ल्यूपी AffectsMeasure के लिए समर्थित नहीं है। फ्रेमवर्क 3+ के लिए यह काम करता है। डिफ़ॉल्ट यूडब्ल्यूपी बाध्यकारी के लिए मैं CodeSnipped कार्यक्षमता के साथ काम कर रहा हूँ। घटनाक्रम के दौरान आप पारदर्शी कार्य कर सकते हैं।

#region IsSelected 

    public static readonly DependencyProperty IsSelectedProperty = 
     DependencyProperty.Register("IsSelected", typeof(bool), typeof(PositionModel), 
      new PropertyMetadata((bool)false, 
       new PropertyChangedCallback(OnIsSelectedChanged))); 

    public bool IsSelected 
    { 
     get { return (bool)GetValue(IsSelectedProperty); } 
     set { SetValue(IsSelectedProperty, value); } 
    } 

    private static void OnIsSelectedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) 
    { 
     PositionModel target = (PositionModel)d; 
     bool oldIsSelected = (bool)e.OldValue; 
     bool newIsSelected = target.IsSelected; 
     target.OnIsSelectedChanged(oldIsSelected, newIsSelected); 
    } 

    protected virtual void OnIsSelectedChanged(bool oldIsSelected, bool newIsSelected) 
    { 
     // Do what your need in your property changed event 
     // In my case, I just raise the PropertyChanged for PropertyChangedEventHandler 
     // RaisePropertyChanged(nameof(IsSelected)); 
    } 
    #endregion 

XAML:

<Rectangle Fill="Black" Visibility="{x:Bind IsSelected, Mode=OneWay, Converter={StaticResource BoolToVis}}" /> 

Windows 10, स्टोर, वी.एस. 2017, Microsoft.NETCore.UniversalWindowsPlatform संस्करण 5.2.3

UWP के लिए मेरे codeSnippet का परिणाम मेरे मॉडल के लिए इस तरह दिखता है
+0

मुझे यकीन नहीं है कि आपने यह जवाब सही प्रश्न पर पोस्ट किया है ... क्या आपने एक निर्भरताप्रॉपर्टी_ को परिभाषित करने के तरीके से आगे पढ़ा है? –

+0

क्षमा करें। यूडब्ल्यूपी प्रभाव के लिए समर्थन समर्थित नहीं है। फ्रेमवर्क 3+ के लिए यह काम करता है। 'PropertyMetadata' द्वारा' FrameworkPropertyMetadata' को प्रतिस्थापित करें और अपने ViewModel में नामस्थान 'नेमस्पेस Windows.UI.Xaml' का उपयोग करें। जैसा कि मैंने समझा, वह आपकी समस्या का समाधान करेगा और आपके प्रश्न का उत्तर देगा। – Nasenbaer

+0

ठीक है, जैसा कि मैंने अपने प्रश्न में पोस्ट किया है उतनी ही जानकारी है। और नहीं, मेरा सवाल हल नहीं हुआ है। यदि आप ध्यान से पढ़ते हैं तो मैं एक निर्भरता संपत्ति चाहता हूं जो एक नया मापने वाला मार्ग ट्रिगर करे। क्योंकि यही 'अमान्य मेटाइज़र' था। आपका उदाहरण एक नया मापने वाला मार्ग ट्रिगर करता है क्योंकि बाइंडिंग दृश्यता पर जाती है। 'टैग' आज़माएं और मुझे बताएं कि यह सिर्फ काम करता है। –

संबंधित मुद्दे