मैं एक WPF प्रोग्राम लिख रहा हूं और मैं एक पाठ बॉक्स में डेटा को प्रारूपित करने के लिए एक शैली या टेम्पलेट जैसी कुछ दोहराने योग्य विधि के माध्यम से पता लगाने की कोशिश कर रहा हूं। मेरे पास बहुत सारे TextBoxes हैं (95 सटीक होने के लिए) और हर एक अपने स्वयं के संख्यात्मक डेटा के लिए बाध्य है, जिनमें से प्रत्येक का अपना संकल्प निर्धारित हो सकता है। उदाहरण के लिए यदि डेटा 2 के रिज़ॉल्यूशन के साथ 99.123 है तो उसे 99.12 प्रदर्शित करना चाहिए। इसी तरह 99 और रिज़ॉल्यूशन 3 के डेटा मूल्य को 99.000 (99 नहीं) के रूप में प्रदर्शित किया जाना चाहिए। क्या इसे करने का कोई तरीका है?
संपादित करें: मुझे स्पष्ट करना चाहिए, मैं जिस स्क्रीन पर काम कर रहा हूं, उस पर 95 टेक्स्टबॉक्स हैं, लेकिन मैं चाहता हूं कि मेरे प्रोग्राम की विभिन्न स्क्रीन पर हर टेक्स्टबॉक्स दशमलव स्थानों की सही संख्या प्रदर्शित करे। अब जब मैं इसके बारे में सोचता हूं, तो इनमें से कुछ TextBoxes हैं (जैसे स्क्रीन पर मैं अभी काम कर रहा हूं) और कुछ DataGrids या ListViews हैं, लेकिन अगर मैं यह पता लगा सकता हूं कि इसे कैसे टेक्स्टबॉक्स के लिए काम करना है तो मुझे यकीन है कि मैं समझ सकता हूं यह अन्य नियंत्रणों के लिए भी है।
इस मामले में साझा करने के लिए बहुत अधिक कोड नहीं है, लेकिन मैं इसे स्पष्ट करने का प्रयास करूंगा:
मेरे पास एक दृश्य मॉडल है जिसमें निम्नलिखित गुण हैं (vb.net):
Public ReadOnly Property Resolution As Integer
Get
Return _signal.DisplayResolution
End Get
End Property
Public ReadOnly Property Value As Single
Get
Return Math.Round(_signal.DisplayValue, Resolution)
End Get
End Property
और मेरे पास XAML में:
<UserControl.Resources>
<vm:SignalViewModel x:Key="Signal" SignalPath="SomeSignal"/>
</UserControl.Resources>
<TextBox Grid.Column="3" IsEnabled="False" Text="{Binding Path=Value, Source={StaticResource Signal}, Mode=OneWay}" />
EDIT2 (मेरा समाधान): यह पता चला है कि थोड़ी देर के लिए कंप्यूटर से दूर जाने के बाद, मैं एक सरल उत्तर खोजने के लिए वापस आया जो मुझे चेहरे पर घूर रहा था। दृश्य मॉडल में डेटा को प्रारूपित करें!
Public ReadOnly Property Value As String
Get
Return (Strings.FormatNumber(Math.Round(_signal.DisplayValue, _signal.DisplayResolution), _signal.DisplayResolution))
End Get
End Property
IValueConverter
? वास्तविक मूल्य और कनवर्टर को रिज़ॉल्यूशन पास करें और इसे अपने भीतर अपने लिए गोल करने दें। यहStringFormat
जानना मुश्किल है कि वास्तव में ये 95 कैसेTextBox
उत्पन्न होते हैं।