2011-10-02 6 views
6

मैं पागल हो रहा हूँ। क्या कोई मुझे समझा सकता है कि एक ही चीज स्वरूपण करने वाले इन स्ट्रिंग प्रारूप इतने अलग क्यों हैं?एक्सएएमएल पर टाइमस्पेन पर उन अलग-अलग स्ट्रिंग प्रारूपों का क्यों?

<DataGridTextColumn Header="Max Time" IsReadOnly="True" Binding="{Binding MaxTime, StringFormat=hh\\:mm\\:ss, TargetNullValue=---}"> 

<DataGridTextColumn Header="Min Time" IsReadOnly="True"> 
    <DataGridTextColumn.Binding> 
     <Binding Path="MinTime" StringFormat="{}{0:hh':'mm':'ss}" TargetNullValue=" --- "/> 
    </DataGridTextColumn.Binding> 
</DataGridTextColumn> 

बेशक प्रत्येक व्यक्ति दूसरे पर काम नहीं करता है।

संपादित करें: जितना अधिक मैं WPF के साथ काम करता हूं उतना ही मुझे लगता है कि यह एक परिपक्व विचार उत्पाद नहीं है।

उत्तर

11

मैं TimeSpan स्वरूपण में कोई विशेषज्ञ हूँ तो मैं आप वास्तव में नहीं बता सकता कि क्यों वे एक ही परिणाम का उत्पादन, लेकिन आप इसके बारे में यहाँ तक पढ़ सकते हैं: Custom TimeSpan Format Strings

बेशक हर एक पर काम नहीं करते अन्य।

वे वही काम करते हैं, बात यह है कि आपको डबल कोट्स के भीतर एक बैकस्लैश का उपयोग करना चाहिए। निम्नलिखित

<Binding Path="MinTime" 
     StringFormat="hh\\:mm\\:ss" 
     TargetNullValue=" --- "/> 

hh\\\\:mm\\\\:ss पर आता है। तो बजाय आप लिखना चाहिए

<Binding Path="MinTime" 
     StringFormat="hh\:mm\:ss" 
     TargetNullValue=" --- "/> 

निम्न दो Bindings ही परिणाम

<DataGridTextColumn Header="Max Time" IsReadOnly="True" 
        Binding="{Binding Path=MaxTime, 
             StringFormat=hh\\:mm\\:ss, 
             TargetNullValue=' --- '}"/> 
<DataGridTextColumn Header="Min Time" IsReadOnly="True"> 
    <DataGridTextColumn.Binding> 
     <Binding Path="MinTime" 
       StringFormat="hh\:mm\:ss" 
       TargetNullValue=" --- "/> 
    </DataGridTextColumn.Binding> 
</DataGridTextColumn> 

प्रस्तुत करना चाहिए और इसलिए दो

<DataGridTextColumn Header="Max Time" IsReadOnly="True" 
        Binding="{Binding Path=MaxTime, 
             StringFormat={}{0:hh':'mm':'ss}, 
             TargetNullValue=' --- '}"/> 
<DataGridTextColumn Header="Min Time" IsReadOnly="True"> 
    <DataGridTextColumn.Binding> 
     <Binding Path="MinTime" 
       StringFormat="{}{0:hh':'mm':'ss}" 
       TargetNullValue=" --- "/> 
    </DataGridTextColumn.Binding> 
</DataGridTextColumn> 
+0

Mmmmm, मैं कहूँगा कि मैंने कोशिश की निम्नलिखित चाहिए \ : लेकिन अब मैंने फिर कोशिश की और इसके काम ... अजीब ... वैसे भी धन्यवाद। –

+0

@ सोमोस: हाँ मुझे पता है, यह खुश है :) –

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