2014-07-04 3 views
6

के माध्यम से पाठ बॉक्स पर संपत्ति मैं एक WPF आवेदन बाइंडिंग के विभिन्न प्रकार है जो सभी शेयर एक ही StringFormat संपत्ति (अपने एक तकनीकी आवेदन, बक्सें इकाइयों के साथ मूल्यों को प्रदर्शित करना चाहिए होने कई TextBox तों शामिल है "xxx मिमी "...)सेट WPF Binding.StringFormat शैली

मैं एक्सएएमएल/डिजाइनर में बाध्यकारी सेट अप करना चाहता हूं, लेकिन मैं प्रत्येक व्यक्तिगत बाध्यकारी पर टेक्स्टफॉर्मेट प्रॉपर्टी को सेट करना टालना चाहता हूं। क्या स्टाइल का उपयोग करके ऐसा करने का कोई तरीका है?

मैं Setters मूल्य संपत्ति में एक Path प्रदान करने की आवश्यकता मैं की तरह

<Style x:Name="mmtext" TargetType="TextBox" x:Key="mmtext"> 
     <Setter Property="Text" Value="{Binding Path=A,StringFormat={}{0} mm}" /> 
    </Style> 

पाठ संपत्ति के लिए एक Setter में बाध्यकारी सेट करने का प्रयास करते हैं, तो और मैं किसी भी XAML अपने आप में बाध्यकारी को परिभाषित नहीं कर सकते हैं (जैसा कि यह स्टाइल में मान सेट को ओवरराइड करेगा)।

क्या एक शैली का उपयोग कर केवल StringFormat संपत्ति को एक बाध्यकारी में सेट/संशोधित करने का कोई तरीका है (यानी Text संपत्ति के लिए बाइंडिंग)?

या मुझे templating या कस्टम नियंत्रण की तलाश करने की आवश्यकता है?

+0

मुझे स्टाइल-आधारित समाधान से अवगत नहीं है। कनवर्टर के बारे में क्या? आपको अभी भी प्रत्येक नियंत्रण के बाध्यकारी में कनवर्टर निर्दिष्ट करना होगा, इसलिए आप अपने द्वारा लिखे गए एक्सएएमएल की मात्रा को कम नहीं कर रहे हैं, लेकिन कम से कम * फ़ॉर्मेटिंग तर्क * एक ही स्थान पर है, अगर आपको इसे कभी भी बदलना है पूरा आवेदन। –

उत्तर

3

आप शायद बजाय पाठ संपत्ति

<TextBox DataContext="{Binding Path=A}" /> 

और फिर बंधन आप प्राप्त करने के लिए वैसे भी एक कनवर्टर की आवश्यकता होगी की तरह

<Style x:Name="mmtext" TargetType="TextBox" x:Key="mmtext"> 
    <Setter Property="Text" Value="{Binding Path=., StringFormat={}{0} mm}" /> 
</Style> 
एक TwoWay के लिए

एक सेटर का उपयोग से पाठ बॉक्स के DataContext बाँध सकता है अतिरिक्त एमएमएस से छुटकारा

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