WPF GridSplitter заменяет привязку строки.свойство height
у меня трудное время с grid splitter. Я связал RowDefinition.Height
свойство зависимости для свойства clr модели, как показано ниже.
<Grid.RowDefinitions> <RowDefinition Height='{Binding Path=Height, Mode=OneWay}' /> <RowDefinition Height='*' /> </Grid.RowDefinitions>
это прекрасно работает только до есть. Когда высота строки изменяется вручную с помощью GridSplitter
, Он заменяет привязку новым фиксированным размером (и удаляет привязку).
у вас есть идеи или обходные пути, как создать две строки, которые можно было бы изменить с помощью GridSplitter, но все же измените их высоту в соответствии со свойством/привязкой clr?
1 ответов
Я думаю, проблема в том, что ваше исходное свойство Height
имеет тип double и 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
установить RowDefinition.Height
введя значение в нижней TextBox
и размер RowDefinition.Height
С GridSplitter