0

我有一个包含 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");
        }
 }

因此,基于上面的设置,取决于用户导航到的位置,代码尝试设置网格第一列的宽度。如果用户不手动更改宽度,一切正常。

无论如何,代码是否可以覆盖用户设置的宽度?

谢谢,

奥斯汀

4

1 回答 1

0

无论如何,代码是否可以覆盖用户设置的宽度?

只要绑定是两种方式,就可以通过在所需时间/位置设置值 NavigationWidth 来实现,例如:

<ColumnDefinition Width="{Binding NavigationWidth, Mode=TwoWay}
于 2013-01-10T19:23:08.520 回答