binding - WPF: Setting Canvas color in a DataTrigger when bound value is null -


मैं कुछ SelectedColorItem ऑब्जेक्ट जैसे कैनवास की पृष्ठभूमि की संपत्ति बाध्य कर रहा हूँ:

  & lt; कैनवास & gt; & LT; Canvas.Style & gt; & Lt; शैली TargetType = "Canvas" & gt; & LT; Style.Triggers & gt; & Lt; DataTrigger बाध्यकारी = "{बाध्यकारी पथ = चयनित कॉलर आईटम, मोड = वनवे, कनवर्टर = {स्टेटिक रिसोर्स हैनिलकोनवर}}" मान = "सत्य" & gt; & Lt; सेटर संपदा = "पृष्ठभूमि" मान = "लाल" / & gt; & Lt; / DataTrigger & gt; & LT; /Style.Triggers> & Lt; / शैली & gt; & LT; /Canvas.Style> & LT; Canvas.Background & gt; & Lt; ठोस रंग ब्रश रंग = "{बाइनिंग चुनिंदा कोलोर आईटीएम। मीडिया कॉलर}" / & gt; & LT; /Canvas.Background> & Lt; / कैनवास & gt;   

यह काम करता है - यह चयनित रंग दिखाता है यह डेटाट्रिगर को काम नहीं करता है, जिसे मैंने लिखा है कि चयनित कॉलर आईटम शून्य है।

सबसे सरल isNullValueConverter भी काम करता है - यह इसके साथ अलग हो सकता है एक लेबल:

  लेबल सामग्री = "{बाध्यकारी पथ = चयनित कॉलर आईटम, मोड = वनवे, कनवर्टर = {स्टेटिक रिसोर्स हैनिलकोनवर}}" / & gt;   

यह True दिखाता है, जब चयनित कॉलर आईटीम रिक्त है और गलत अन्यथा।

क्या कोई मुझे बता सकता है कि क्या गलत है ट्रिगर के साथ?

पी एस SelectedColorItem एक ColorItemClass का एक उदाहरण है जिसमें एक मीडियाकॉलर प्रॉपर्टी है:

  सार्वजनिक सिस्टम। विन्डो। मीडिया। कॉलर मीडियाकॉलर {get; set;}    

यह बात यह है कि तत्व पर सेट वैल्यू में उच्च "प्राथमिकता" है, जब शैली से मूल्य, जिसका अर्थ है कि शैली के अंदर मूल्य सेट हो (ट्रिगर समेत) स्थानीय रूप से सेट मान को ओवरराइड नहीं कर सकते।

यह सेट किया जा रहा है, आपको एक ही स्तर पर दोनों मूल्यों की आवश्यकता है, इसलिए बस शैली के भीतर पृष्ठभूमि संपत्ति बाध्य करें:

  & LT; कैनवास & gt; & LT; Canvas.Style & gt; & Lt; शैली TargetType = "Canvas" & gt; & Lt; सेटर संपदा = "पृष्ठभूमि" & gt; & LT; Setter.Value & gt; & Lt; ठोस रंग ब्रश रंग = "{बाइनिंग चुनिंदा कोलोर आईटीएम। मीडिया कॉलर}" / & gt; & LT; /Setter.Value> & Lt; / सेटर & gt; & LT; Style.Triggers & gt; & Lt; DataTrigger बाइंडिंग = "{बाध्यकारी पथ = चयनित कॉलर आईटम, मोड = वनवे, कनवर्टर = {स्टेटिक रिसोर्स हैनुलकोनवर}}" मान = "ट्रू" & gt; & Lt; सेटर संपदा = "पृष्ठभूमि" मान = "लाल" / & gt; & Lt; / DataTrigger & gt; & LT; /Style.Triggers> & Lt; / शैली & gt; & LT; /Canvas.Style> & Lt; / कैनवास & gt;    

Comments