2011-03-10 11 views
8

पर बाध्यकारी को प्रतिस्थापित करता है मुझे ग्रिड स्प्लिटर के साथ कठिन समय हो रहा है। मैंने RowDefinition.Height निर्भरता संपत्ति को नीचे प्रस्तुत किए गए मॉडल की क्लियर प्रॉपर्टी में बाध्य कर दिया है।Wpf GridSplitter row.height प्रॉपर्टी

 

    <Grid.RowDefinitions> 
     <RowDefinition Height='{Binding Path=Height, Mode=OneWay}' /> 
     <RowDefinition Height='*' /> 
    </Grid.RowDefinitions> 

यह GridSplitter का उपयोग होने तक ठीक काम करता है। जब पंक्ति की ऊंचाई मैन्युअल रूप से GridSplitter के साथ बदल दी जाती है, तो यह बाध्यकारी को नए निश्चित आकार (और बाइंडिंग को हटा देती है) से बदल देती है।

क्या आपके पास कोई विचार या कामकाज है कि दो पंक्तियों को कैसे बनाया जाए जो ग्रिडस्प्लिटर के साथ आकार बदल सकें लेकिन फिर भी क्लियर प्रॉपर्टी/बाइंडिंग के अनुसार अपनी ऊंचाई बदल दें?

उत्तर

12

मुझे लगता है कि समस्या यह है कि आपकी स्रोत संपत्ति Height प्रकार डबल और RowDefinition.Height प्रकार GridLength है। एक कनवर्टर का उपयोग करें और यह TwoWay

<Grid.RowDefinitions> 
    <RowDefinition Height="{Binding Path=Height, 
            Mode=TwoWay, 
            Converter={StaticResource DoubleGridLengthConverter}}"/> 
    <!--...--> 
</Grid.RowDefinitions> 

DoubleGridLengthConverter

public class DoubleGridLengthConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     return new GridLength((double)value); 
    } 
    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     GridLength gridLength = (GridLength)value; 
     return gridLength.Value; 
    } 
} 
काम करेंगे

अद्यतन
अपलोड की गई मेरी नमूना यहाँ आवेदन: http://www.mediafire.com/download.php?pgibb205d65596q

सेटGridSplitter

+0

इस के साथ कम TextBox में मान दर्ज और RowDefinition.Height का आकार बदलने के बाद से काम नहीं करेगा द्वारा (मुझे लगता है कि) GridSplitter बाध्यकारी दूर करता है और एक निश्चित आकार के लिए ऊंचाई संपत्ति सेट। इस प्रकार पंक्तियों का आकार बदलने के बाद बाध्यकारी डिस्कनेक्ट हो जाती है। – grizzly

+0

@ कैटफ़िशरमैन: नहीं, यह बाध्यकारी को नहीं हटाएगा। 'ग्रिडस्प्लिटर' के साथ आकार देने पर, नई ऊंचाई आपकी स्रोत प्रॉपर्टी –

+0

@ कैटफ़िशरमैन में सेट की जाएगी: मेरे नमूना प्रोजेक्ट के साथ मेरा जवाब अपलोड किया गया है, जिसे आप आजमा सकते हैं, यह दोवे –