में सेट किया गया यह व्यवहार मेरे लिए अविश्वसनीय रूप से अजीब लगता है, और मुझे लगता है कि मैं इसे प्राप्त करने में कुछ गलत कर रहा हूं। मेरे पास ContentControl
है जो TabControl प्रस्तुत करने के लिए डेटा टेम्पलेट का उपयोग करता है। मैं एक छवि को प्रदर्शित करना चाहता हूं जब कोई टैब खुलता न हो, और वहां होने पर छिपाएं। लेकिन यहां समस्या है:WPF ट्रिगर गुण सेट नहीं करेगा यदि एलिमेंट
<Image Name="image1" Stretch="Uniform" Visibility="Hidden" Source="/Affinity;component/Images/affinity_logo.png">
<Image.Style>
<Style TargetType="Image">
<Style.Triggers>
<DataTrigger Binding="{Binding Items.Count, ElementName=tabcontrolworkspaces}"
Value="0">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
यह काम नहीं करता है ... प्रकार।
मैंने विज़िबिलिटी और मार्जिन (बस सुनिश्चित करने के लिए) पर इसका परीक्षण किया है। यह ट्रिगर संपत्ति को बदल देगा, जब तक कि उस संपत्ति को Image
टैग में परिभाषित नहीं किया जाता है। यदि ऐसा है, तो ट्रिगर उस संपत्ति को अपडेट नहीं करेगा। इसलिए, अगर मैं छवि के लिए दृश्यता परिभाषित नहीं करता हूं, और ट्रिगर इसे छुपाता है, तो यह काम करता है। समस्या यह है कि डिफ़ॉल्ट दृश्यमान है और ट्रिगर को इसे दिखाने की आवश्यकता होती है जब मूल्य = 0 और अन्यथा इसे छुपाएं।
ट्रिगर क्यों स्पष्ट रूप से परिभाषित गुणों को ओवरराइड नहीं करेगा? क्या इसका उद्देश्य नहीं है?
क्या आपने इसे दूसरी तरफ स्थापित करने का प्रयास किया है? जैसा कि, वैल्यू! = "0" दृश्यता को दृश्यमान करने के लिए सेट नहीं करता है? – mydogisbox
क्या आप इसका उपयोग भी कर सकते हैं! = ट्रिगर वैल्यू में? – Tyrsius
सीधे नहीं, लेकिन कुछ प्रयासों के साथ यह किया जा सकता है। @CodeNaked एक बेहतर समाधान है। अवांछित समाधान यहां है। http://blogs.msdn.com/b/mikehillberg/archive/2008/09/30/comparabledatatrigger.aspx – mydogisbox