2012-03-07 78 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填满?

回答

相关问题