我正在开发一个MVVM应用程序(这里的示例不是很MVVM,它只是一个模型)。
我有一个ListView
,它绑定到TextItemViewModel
个实例的集合,这些实例的视图在TextItemView
中定义。每个TextItemView
包含一个Grid
,其中包含一个Auto
列,并在*
列上填充。填充列包含TextBox
,用户可以在其中输入文字。
我希望TextItemView
s填充ListView
的水平空间(这样可行),如下所示:
但是,当用户在框中输入长文本时,我希望它在Height
中展开,而不是在Width
中展开。目前,Width
增加,ListView
获得滚动条,如下所示:
我的ListView
代码如下所示:(我已经取出MVVM绑定代码并在此示例的代码隐藏中设置ItemsSource
)
<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
并展开{{1}当TextItemView
填满时,在Height
中?
答案 0 :(得分:8)
好的,我现在感谢WPF - How to stop TextBox from autosizing?
Trick是将以下内容添加到ListView
定义:
ScrollViewer.HorizontalScrollBarVisibility="Disabled"