2012-03-07 117 views
2

我正在研究MVVM應用程序(這裏的示例雖然不是MVVM,但它只是一個模型)。將TextBox的寬度限制爲包含它的ListView的寬度

我有一個ListView,綁定到TextItemViewModel實例的集合,這些視圖在TextItemView中定義。每個TextItemView包含一個Grid,其中一個Auto列和*列填充。填充列包含用戶可以輸入文本的TextBox

我想TextItemView s到填補ListView的水平空間(這工作),像這樣:

enter image description here

然而,當用戶在框中輸入長的文本,我希望它展開在Height但不在Width。目前,該Width增加,ListView得到一個滾動條,像這樣:

enter image description here

ListView代碼如下所示:(我已經在代碼中取出MVVM綁定代碼,並設置ItemsSource -behind在這個例子中)

<ListView Name="listview" 
      SelectionMode="Single" 
      Margin="5" 
      MinHeight="50" 
      HorizontalAlignment="Stretch" 
      HorizontalContentAlignment="Stretch" /> 

而且我TextItemView代碼如下所示:

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto" /> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="Auto" /> 
    </Grid.ColumnDefinitions> 

    <Button Content="SomeButton" 
      HorizontalAlignment="Left" 
      VerticalAlignment="Top"     
      Margin="5" 
      Grid.Column="0" /> 

    <TextBox Text="{Binding Path=NoteText}" 
      TextWrapping="Wrap" 
      AcceptsReturn="True" 
      AcceptsTab="True" 
      VerticalScrollBarVisibility="Auto" 
      HorizontalScrollBarVisibility="Disabled" 
      HorizontalAlignment="Stretch"     
      Margin="5"     
      Grid.Column="1" /> 
</Grid> 

誰能告訴我如何迫使TextItemView填補ListView的寬度(因爲它),但隨後包裹TextBox和擴大TextItemViewHeightTextBox填滿?

回答

相關問題