silverlight - MediaElement: Element Binding to DownloadProgress -
मैं एक टेक्स्टब्लॉक के टेक्स्ट की निर्भरता संपत्ति को बाध्य करने का एक बहुत सरल परिदृश्य कोशिश कर रहा हूं ।
& lt; स्टैकपैनेल & gt; & Lt; MediaElement x: नाम = "मीडिया एलेमेंट 1" चौड़ाई = "500" ऊँचाई = "500" स्रोत = "http://ecn.channel9.msdn.com/o9/pdc09/wmv/CL20.wmv" ऑटोप्ले = "ट्रू" / & gt; & Lt; टेक्स्टब्लॉक टेक्स्ट = "{बाध्यकारी डाउनलोड प्रगति, एलिमेंटनाम = मीडिया एलेमेंट 1, मोड = वनवेज़}" / & gt; & Lt; / StackPanel & gt;
दुर्भाग्य से, TextBlock इसके टेक्स्ट को कभी अपडेट नहीं करता है सबसे पहले, मैंने सोचा था कि संपत्ति एक निर्भरता प्रॉपर्टी नहीं थी, लेकिन यह है ... एमएसडीएन के अनुसार।
एक कार्यप्रणाली डाउनलोडप्रदर्शन परिवर्तित होने की घटना के लिए सुनना है और कोड-पीछे का उपयोग करके मेरा टेक्स्टब्लॉक अपडेट करना है, लेकिन यह कुछ है मैं बचने की कोशिश कर रहा हूं।
किसी भी टिप्पणी की अत्यधिक सराहना की जाएगी।
सबसे अच्छा संबंध,
किरिल
< Div class = "text-mail" itemprop = "text">
मेरा मानना है कि क्योंकि मीडियाएलेमेंट पर उन गुणों की परिवर्तन घटना प्रकार के बजाय RoutedEventHandler प्रकार प्रकार के बजाय RoutedPropertyChangedEventHandler हैं (जैसे एक स्लाइडर की तरह कुछ पर ValueChanged ईवेंट हो)। प्रारंभिक तत्व बाध्यकारी ठीक काम कर रहा है क्योंकि डाउनलोडप्रगति वास्तव में एक निर्भरता प्रॉपर्टी है, यह अभी तक किसी प्रकार की सूचना नहीं मिल रही है कि संपत्ति में परिवर्तन होता है, इसलिए यह कभी भी अद्यतन नहीं करेगा।
इसका मतलब है कि आप बहुत अधिक कुछ तरह से डाउनलोड प्रगति बदलते घटना यदि आप वास्तव में कोड का उपयोग करने से बचने के लिए चाहते थे, तो मैं किसी प्रकार के ब्लेंड लक्ष्यितट्रिगर एक्शन का सुझाव दूंगा। अभी भी कोड का एक छोटा सा भाग होगा, लेकिन इसे एक्सएएमएल में घोषणात्मक रूप से चिह्नित किया जाएगा और कम से कम यह आपके कोड-पीछे के पुन: प्रयोज्य और बाहर किया जाएगा।
ऐसा कुछ इस तरह की चाल हो सकता है (I % और दशमलव रूपान्तरण में यहां एक रूपांतरण संभालना है I {सुरक्षित ओवरराइड शून्य (ऑब्जेक्ट पैरामीटर) को खोलें {MediaElement mediaElement = (MediaElement) this.AssociatedObject; This.Target.Text = (मीडिया एलेमेंट। डाउनलोडप्रोग्रेशन * 100) .ओस्ट्रिंग ("0.0"); }}
तब आप इसे अपने एक्सएएमएल में एक डाउनलोडप्रोग्राफिक बदलाव वाले ईवेंटट्रिगर के लिए एक क्रिया के रूप में बुलाएंगे और टेक्स्टबॉल को आप लक्ष्य के रूप में अपडेट करना चाहते हैं।
& Lt; मीडिया एलेमेंट x: नाम = "मायमेडियाएलेमेंट" & gt; & Lt; i: Interaction.Triggers & gt; & Lt; i: EventTrigger EventName = "डाउनलोड प्रगति बदलते" & gt; & Lt; स्थानीय: अपडेटडाउनलोडप्रोग्रेशनबिहवासी लक्ष्यनैम = "मायटेस्डब्लॉक" / & gt; & Lt; / मैं: EventTrigger & gt; & Lt; / मैं: Interaction.Triggers & gt; & Lt; / MediaElement & gt;
मुझे यकीन नहीं है कि यह आपके पास क्लीनर को कोडिंग के पीछे सीधे वाइरिंग से अलग लगता है, लेकिन मैं इसे व्यक्तिगत रूप से थोड़ा बेहतर करता हूं। मैं सोच सकता हूं कि केवल एक अन्य समाधान बाईंडिंग कैंडिडेट सहायक है, जो कि इनोटेफप्रोटीटी बदल सकता है और सूचनाएं संभाल सकता है, लेकिन मुझे पूरा यकीन नहीं है कि मीडिया एलेमेंट के साथ इसका उपयोग करने में क्या शामिल है।
Comments
Post a Comment