Я работаю над приложением MVVM (хотя примеры здесь не очень MVVM, это просто макет).
У меня есть ListView
, который привязывается к коллекции TextItemViewModel
экземпляров,представление для них определено в TextItemView
.Каждый TextItemView
содержит Grid
с одним столбцом Auto
и столбцом *
для заполнения.Столбец заполнения содержит TextBox
, где пользователь может ввести текст.
Я хочу, чтобы TextItemView
s заполнял горизонтальное пространство ListView
(это работает), например:
![enter image description here](https://i.stack.imgur.com/bnzHt.png)
Однако, когда пользователь вводит длинный текст в поле, я хочу, чтобы он расширялся в Height
, но не в Width
.На данный момент Width
увеличивается, а ListView
получает полосу прокрутки, например:
![enter image description here](https://i.stack.imgur.com/Cl4ZX.png)
Мой код 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
и развернуть TextItemView
в Height
, когда TextBox
заполнится?