Лучший отвечающий
Элементы listbox разных размеров

Вопрос
-
В listbox нужно чтобы строки были разных размеров, как этого добиться?4 августа 2012 г. 8:29
Ответы
-
Если Вам нужно, чтобы элементы списка были под размер текста в них, то я бы сделал что-то типа такого:
<ListBox Name="lstStrings" > <ListBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Path=ItemText}" TextWrapping="Wrap" /> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
А данные привязал бы, например, так:
ObservableCollection<TempItem> _collection = null; protected override void OnNavigatedTo(NavigationEventArgs e) { _collection = new ObservableCollection<TempItem>(); for (var i = 0; i < 50; ++i) { _collection.Add(new TempItem() { ItemText = GetRandomString() }); } lstStrings.ItemsSource = _collection; base.OnNavigatedTo(e); }
TempItem - это класс с одним текстовым свойством ItemText.
Не очень удачный пример. Наиболее удачное решение создать привязку данных для свойства Height. В шаблоне
ListBox.ItemTemplate
- Изменено Viktor Borisov 6 августа 2012 г. 4:15
- Предложено в качестве ответа PetrishkoMVP 6 августа 2012 г. 9:26
- Помечено в качестве ответа PetrishkoMVP 9 августа 2012 г. 21:35
6 августа 2012 г. 4:15
Все ответы
-
Если Вам нужно, чтобы элементы списка были под размер текста в них, то я бы сделал что-то типа такого:
<ListBox Name="lstStrings" > <ListBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Path=ItemText}" TextWrapping="Wrap" /> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
А данные привязал бы, например, так:
ObservableCollection<TempItem> _collection = null; protected override void OnNavigatedTo(NavigationEventArgs e) { _collection = new ObservableCollection<TempItem>(); for (var i = 0; i < 50; ++i) { _collection.Add(new TempItem() { ItemText = GetRandomString() }); } lstStrings.ItemsSource = _collection; base.OnNavigatedTo(e); }
TempItem - это класс с одним текстовым свойством ItemText.
4 августа 2012 г. 10:28 -
Если Вам нужно, чтобы элементы списка были под размер текста в них, то я бы сделал что-то типа такого:
<ListBox Name="lstStrings" > <ListBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Path=ItemText}" TextWrapping="Wrap" /> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
А данные привязал бы, например, так:
ObservableCollection<TempItem> _collection = null; protected override void OnNavigatedTo(NavigationEventArgs e) { _collection = new ObservableCollection<TempItem>(); for (var i = 0; i < 50; ++i) { _collection.Add(new TempItem() { ItemText = GetRandomString() }); } lstStrings.ItemsSource = _collection; base.OnNavigatedTo(e); }
TempItem - это класс с одним текстовым свойством ItemText.
Не очень удачный пример. Наиболее удачное решение создать привязку данных для свойства Height. В шаблоне
ListBox.ItemTemplate
- Изменено Viktor Borisov 6 августа 2012 г. 4:15
- Предложено в качестве ответа PetrishkoMVP 6 августа 2012 г. 9:26
- Помечено в качестве ответа PetrishkoMVP 9 августа 2012 г. 21:35
6 августа 2012 г. 4:15