我正在研究MVVM应用程序(这里的示例虽然不是MVVM,但它只是一个模型)。将TextBox的宽度限制为包含它的ListView的宽度
我有一个ListView
,绑定到TextItemViewModel
实例的集合,这些视图在TextItemView
中定义。每个TextItemView
包含一个Grid
,其中一个Auto
列和*
列填充。填充列包含用户可以输入文本的TextBox
。
我想TextItemView
s到填补ListView
的水平空间(这工作),像这样:
然而,当用户在框中输入长的文本,我希望它展开在Height
但不在Width
。目前,该Width
增加,ListView
得到一个滚动条,像这样:
我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
和扩大TextItemView
在Height
当TextBox
填满?