2011-03-10 17 views
8

Izgara ayırıcı ile zor bir zaman geçiriyorum. Aşağıda gösterildiği gibi, modelin clr özelliğine RowDefinition.Height bağımlılık özelliğini bağladım.Wpf GridSplitter, row.height özelliği üzerindeki bağlamanın yerini alır

 

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

Bu GridSplitter kullanılır sadece kadar iyi çalışır. Satır yüksekliği GridSplitter ile manuel olarak değiştirildiğinde, yeni sabit boyutla bağlamanın yerini alır (ve bağlamayı kaldırır).

GridSplitter ile yeniden boyutlandırılabilir ancak yine de clr özelliği/bağlamaya göre yüksekliğini değiştirecek iki satırın nasıl oluşturulacağı hakkında herhangi bir fikriniz veya geçici çözümünüz var mı?

cevap

12

Sorun, kaynak özellik Height türünün çift ve RowDefinition.Height türünün GridLength türünde olduğunu düşünüyorum. Bir dönüştürücü kullanın ve 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; 
    } 
} 
çalışacağız

Güncelleme burada örnek uygulama yüklendi
: http://www.mediafire.com/download.php?pgibb205d65596q

Setalt TextBox'a bir değer girerek ve RowDefinition.Height'u GridSplitter

+0

ile yeniden boyutlandırın. GridSplitter bağlamayı kaldırır ve height özelliğini sabit bir boyuta ayarlar. Böylece, satırların yeniden boyutlandırılmasından sonra bağlanma kesilir. – grizzly

+0

@Catfisherman: Hayır, Bağlamayı kaldırmayacak. "GridSplitter" ile boyutlandırırken, yeni Yükseklik, kaynak özelliğinizde ayarlanacaktır. –

+0

@Catfisherman: Bu ikiWay –