我有一个简单的网格,有3列
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding NavigationWidth}" />
<ColumnDefinition Width="4" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
</Grid.ColumnDefinitions>
</Grid>
<GridSplitter Grid.Column="1" Grid.Row="2"
ResizeDirection="Columns"
Background="Silver"
Width="2" HorizontalAlignment="Center"
VerticalAlignment="Stretch" />
<ContentControl x:Name="navigationView" Grid.Column="0" Grid.Row="1"/>
<ContentControl x:Name="workspaceView" Grid.Column="2" Grid.Row="1" />
// The NavigationWidth is belongs to the ViewModel
public int NavigationWidth
{
get{ return _navigationWidth; }
set{
_navigationWidth = value;
OnPropertyChanged("NavigationWidth");
}
}
所以基于上面的设置,取决于用户导航到的位置,代码尝试设置网格第一列的宽度。 如果用户没有手动更改宽度,一切正常。
无论如何代码都可以覆盖用户设置的宽度吗?
谢谢,
奥斯汀
答案 0 :(得分:0)
无论如何代码都可以覆盖用户设置的宽度吗?
是的,只要绑定是双向的,就可以在所需的时间/位置设置值NavigationWidth,例如:
<ColumnDefinition Width="{Binding NavigationWidth, Mode=TwoWay}