Мне нужно отобразить пользователю два списка - по одному с каждой стороны окна - и позволить пользователю выбирать, сколько экранного пространства отводится каждому.Я добился этого с помощью следующего кода:
<Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding FirstColumnWidth}" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ListBox Name="FirstColumn" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Row="0" Grid.Column="0" />
<GridSplitter Name="gridSplitter1" Width="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Row="0" Grid.Column="1" />
<ListBox Name="SecondColumn" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Row="0" Grid.Column="2" />
</Grid>
Однако, хотя привязка будет извлекать начальную ширину для первого столбца и соответствующим образом их размер, используя GridSplitter для изменения их размера, просто заменяет привязку нановое значение.Как я могу получить новое значение, чтобы сохранить его?
В идеале, решение должно хорошо работать с MVVM - я использую Caliburn и стараюсь сохранить код максимально чистым (моя модель представлениясодержит свойство FirstColumnWidth, которое в настоящее время связано).