2013-01-10 48 views
0

结合变化列宽我有3列WPF数据在视图模型

上述
<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

反正是有代码可以改写由用户设定的宽度是多少?

是通过只要在期望的时间/位置设定值NavigationWidth作为结合是双向如:

<ColumnDefinition Width="{Binding NavigationWidth, Mode=TwoWay} 
+0

只要用户不通过移动栅格切刀改变宽度,上面的代码工作得很好。 – AustinTX

+0

@AustinTX将网格的属性更改为不允许调整大小。 – OmegaMan

+0

但用户想要手动更改宽度,如果他们想。 – AustinTX